mycat:水平分库之范围分库和Hash分库
Posted 纯洁的明依
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mycat:水平分库之范围分库和Hash分库相关的知识,希望对你有一定的参考价值。
2.1、范围分库
所谓的范围分库指的是可以根据你的id的范围进行不同数据库的保存,或者
是根据你的数据库的数据大小来进行保存进行的一种处理机制。
1、【mycat-server-01】定义一个新的分片规则:vim/usr/local/mycat/conf/rule.xml;
设置该分片处理所使用的算法:
此时需要设置一个分片的规则文件:orders-partition-long.txt。
2、【mycat-server-01】编写具体的分片规则:vim/usr/local/mycat/conf/orders-partition-long.txt
3、【mycat-server-01】更换分片规则:vim/usr/local/mycat/conf/schema.xml;
<tablename="orders"primaryKey="oid"dataNode="dn1,dn2,dn3"
rule="myorders-auto
-sharding-long"/>
那么随后启动mycat服务:/usr/local/mycat/bin/mycatconsole;追加数据:INSERTINTOorders(oid,title,pubdate)VALUES(11,@@hostname,'2020-01-01');这个时候将根据订单的编号来选择不同的分片进行数据的存储
2.2、Hash分库
Hash分库可以实现根据不同的编号保存到不同的数据库的操作,例如:假设说现在要求按照所在的地区进行分库的保存,这种情况就称为hash分库处理。
1、【mycat-server-01】设置一个新的分片规则:vim/usr/local/mycat/conf/rule.xml;
·增加新的分片项:此时title的可选内容一定是固定的;
·增加相应的算法配置:
对于hash分片需要设置它一个分片的数据类型:
·type=0:表示数字型分片;
·type=1:描述的是字符串分片。
·建立hash分片原则配置文件:
vim/usr/local/mycat/conf/myorders-partition-hash-int.txt
那么此时title可以设置的内容就只有以上的几点了。
2、【mycat-server-01】配置mycat分片规则:vim/usr/local/mycat/conf/schema.xml;
<tablename="orders"primaryKey="oid"dataNode="dn1,dn2,dn3"
rule="myorders-by-intfile"/>
3、【mycat-server-01】启动mycat服务:/usr/local/mycat/bin/mycatconsole;
允许你追加的title的内容是有限的。
INSERTINTOorders(oid,title,pubdate)VALUES(13,'sh','2020-01-01');
一般而言如果要想实现Hash的分片处理,往往需要有一些固定的数据信息出现,例如:按照省份分片,按照城市分片。
以上是关于mycat:水平分库之范围分库和Hash分库的主要内容,如果未能解决你的问题,请参考以下文章