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
Mycat有十几种分片规则,本文介绍了两种。一是取模mod - long分片法,根据id进行十进制求模运算,分片列的值对分片数量取模得到对应分片数据库;二是按日期(天)分片sharding - by - date,从2019 - 05 - 01开始,每10天一个分片。
4707

被折叠的 条评论
为什么被折叠?



