数据库中间件分片算法之hash

  • 时间:
  • 浏览:2
  • 来源:万人红黑大战棋牌APP_万人红黑大战棋牌APP官网

先根据分片键取出999,按照公式1的计算结果除取模,而且得到的值落到2计算出来的分片中。

此时C _L=2_2000=2000,将对2000进行取模。



请原谅我作为1个 多GEEK,把桌面和终端完美结合成二次元是标配。

这里还才能看完让当我们儿查询999你这名数据,会自动到dn4你这名分片上进行查询。再比如让当我们儿查2000,2000对3200取模是200,200是落在第1个分区上边的。

也而且传进来的值才能 对3200取模。

前面让当我们儿学习了schema.xml文件的配置,让当我们儿能独立的把逻辑库逻辑表搭建起来,让数据表跟随让当我们儿的定义规则(取模)进行分布。今天让当我们儿介绍具体的分片算法。dble相对于mycat来说,是做了你这名减法的。比如一致hash算法就没哟,而且使用了jumpstringhash代替了一致性hash。具体原因分析分析分析还才能参考文章dble 沿用 jumpstringhash,移除 Mycat 一致性 hash 原因分析分析分析

让当我们儿通过公式2算出有1个分片。统统在schema.xml中设置table属性如下:

根据公式2,物理分区为

让当我们儿先使用shell创建2000行数据,在创建表,通过load data语法将让当我们儿shell产生的文件进行导入。

999对3200取模,正好是299。落在2200-200你这名区间上边。也而且第1个 多区间。

并肩将划分如下的分区:

Hash分区算法是两种比较典型而且常用的算法。要使用HASH分区算法才能 在rule.xml中定义1个 多偏离 。

这几天有人问我,dble和MyCat到底有你这名不同。实在dble作为MyCAT的同门,吸收了MyCat的精华,并肩也相应的做了你这名减法。只支持MySQL显得更加的纯粹。统统选折 对比学习两者我实在挺好。

今天学习了分片算法Hash。后续将继续分享你这名的算法。谢谢支持!

如下所示,使用function标签定义分区算法,name代表算法的名字,算法的名字要和上边的tableRule中的标签相对应。class:指定分区算法实现类。property指定了对应分区算法的参数。不同的算法参数不同。

如下所示,使用tableRule标签定义,name对应的是规则的名字,而rule标签中的columns则对应的分片字段,你这名字段才能 和表中的字段一致。algorithm则代表了执行分片函数的名字。

夜半人静的完后 ,打开云音乐,点上一曲攀登,带上真无线蓝牙耳机,瞬间燃到爆,键盘打字如飞倦意全无。

接下来让当我们儿实际来测试一下,让当我们儿在rule.xml中设置如下:

根据公式1