mycat水平分表原则
具体怎么个水平分表法,我们最终目标是要根据具体业务把单表的请求负载均衡的分散到多库中。
不能出现大量的请求集中1,2个分表;
比如订单表,我们划分的时候,不能根据id来划分,因为平时请求查询的时候一般是根据某个用户id去查询用户的订单信息的。
所以我们这个订单表的划分原则是根据用户id 取模划分,这样的话,请求能均衡的分布到多个分表,以及 查询的时候 大部分情况都是一个分表查询,效率会高一些;
MYCAT常用的分片规则如下:
(1)分片枚举: sharding-by-intfile
(2)主键范围约定: auto-sharding-long 此分片适用于,提前规划好分片字段某个范围属于哪个分片
(3)一致性hash: sharding-by-murmur
(4)字符串hash解析: sharding-by-stringhash
(5)按日期(天)分片:sharding-by-date
(6)按单月小时拆分: sharding-by-hour
(7)自然月分片: sharding-by-month
(8)取模: mod-long 此规则为对分片字段求摸运算
(9)取模范围约束: sharding-by-pattern 此种规则是取模运算与范围约束的结合,主要为了后续数据迁移做准备,即可以自主决定取模后数据的节点分布
上一篇:mycat水平分表介绍
下一篇:mycat水平分表取模分片实现