前言
夜深人静的时候,打开云音乐
,点上一曲攀登
,带上真无线蓝牙耳机,瞬间燃到爆,键盘打字如飞倦意全无。
分片规则
这几天有人问我,dble和MyCat到底有什么不同。其实dble作为MyCAT的同门,吸收了MyCat的精华,同时也相应的做了一些减法。只支持MySQL显得更加的纯粹。所以选择对比学习两者我觉得挺好。
前面我们学习了schema.xml文件的配置,我们能独立的把逻辑库
和逻辑表
搭建起来,让数据表跟随我们的定义规则(取模)进行分布。今天我们介绍具体的分片算法。dble
相对于mycat
来说,是做了一些减法的。比如一致hash算法就没有,而是使用了jumpstringhash
代替了一致性hash。具体原因可以参考文章dble 沿用 jumpstringhash,移除 Mycat 一致性 hash 原因
hash分区算法
- stringhash分区算法
- enum分区算法
- numberrange分区算法
- patternrange分区算法
- date分区算法
- jumpstringhash算法
HASH分区算法
Hash分区算法是一种比较典型而且常用的算法。要使用HASH分区算法需要在rule.xml中定义两个部分。
分区规则定义
如下所示,使用tableRule
标签定义,name对应的是规则的名字,而rule
标签中的columns
则对应的分片字段,这个字段必须和表中的字段一致。algorithm
则代表了