mycat 的分片规则

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值