mycat 的分片规则

mycat的分片规则有十几种方式,比如在上面几篇文章中使用的取模mod-long分片法,

1.取模mod-long分片法

即根据id进行十进制求模预算。分片列的值 % 分片数量 = 对应分片的数据库。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
<mycat:rule xmlns:mycat="http://io.mycat/">
	<tableRule name="rule1">
		<rule>
			<columns>id</columns>
			<algorithm>mod-long</algorithm>
		</rule>
	</tableRule>
	<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
		<!-- how many data nodes -->
		<property name="count">2</property>
	</function>
	
</mycat:rule>

分片规名称为:mod-long

分片列:id

分片数量:2 

2.按日期(天)分片sharding-by-date

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
<mycat:rule xmlns:mycat="http://io.mycat/">
	<tableRule name="rule1">
		<rule>
			<columns>create_date</columns>
			<algorithm>sharding-by-date</algorithm>
		</rule>
	</tableRule>
	<function name="sharding-by-date" class="io.mycat.route.function.PartitionByDate">
		<!-- how many data nodes -->
		<!--<property name="count">2</property> -->
		 <property name="dateFormat">yyyy-MM-dd</property>
		 <property name="sBeginDate">2019-05-01</property>
		  <property name="sPartionDay">10</property>
	</function>
	
</mycat:rule>

 从2019-05-01开始,每10天一个分片

 db2 

db1 

猜你喜欢

转载自blog.csdn.net/java_chegnxuyuan/article/details/89926112