欢迎来到天天文库
浏览记录
ID:40490670
大小:199.13 KB
页数:13页
时间:2019-08-03
《mycat分片规则》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、mycat分片规则常用的根据主键或非主键的分片规则配置:1.枚举法: 通过在配置文件中配置可能的枚举id,自己配置分片,使用规则:user_idhash-int2、">partition-hash-int.txt00partition-hash-int.txt配置:10000=010010=1DEFAULT_NODE=1上面columns标识将要分片的表字段,algorithm分片函数,其中分片函数配置中,mapFile标识配置文件名称,type默认值为3、0,0表示Integer,非零表示String,所有的节点配置都是从0开始,及0代表节点1/*** defaultNode默认节点:小于0表示不设置默认节点,大于等于0表示设置默认节点* 默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点* 如果不配置默认节点(defaultNode值小于0表示不配置默认节点),碰到* 不识别的枚举值就会报错,* likethis:can'tfinddatanodeforshardingcolumn:column_nameva4、l:ffffffff */2.固定分片hash算法user_idfunc12,15、artitionLength">256,512配置说明:上面columns标识将要分片的表字段,algorithm分片函数,partitionCount分片个数列表,partitionLength分片范围列表分区长度:默认为最大2^n=1024,即最大支持1024分区约束:count,length两个数组的长度必须是一致的。1024=sum((count[i]*length[i])).count和length两个向量的点积恒等于1024用法例子: 本例的分区策略:希望将数据6、水平分成3份,前两份各占25%,第三份占50%。(故本例非均匀分区) //7、<---------------------1024------------------------>8、 //9、<----256--->10、<----256--->11、<----------512---------->12、 //13、partition014、partition115、partition216、 //17、共2份,故count[0]=218、共1份,故count[1]=119、 int[]count=newint[]{2,1}; 20、int[]length=newint[]{256,512}; PartitionUtilpu=newPartitionUtil(count,length); //下面代码演示分别以offerId字段或memberId字段根据上述分区策略拆分的分配结果 intDEFAULT_STR_HEAD_LEN=8;//cobar默认会配置为此值 longofferId=12345; StringmemberId="qiushuo"; //若根据offerId分配,partNo1将等于0,即按照上述分21、区策略,offerId为12345时将会被分配到partition0中 intpartNo1=pu.partition(offerId); //若根据memberId分配,partNo2将等于2,即按照上述分区策略,memberId为qiushuo时将会被分到partition2中 i
2、">partition-hash-int.txt00partition-hash-int.txt配置:10000=010010=1DEFAULT_NODE=1上面columns标识将要分片的表字段,algorithm分片函数,其中分片函数配置中,mapFile标识配置文件名称,type默认值为
3、0,0表示Integer,非零表示String,所有的节点配置都是从0开始,及0代表节点1/*** defaultNode默认节点:小于0表示不设置默认节点,大于等于0表示设置默认节点* 默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点* 如果不配置默认节点(defaultNode值小于0表示不配置默认节点),碰到* 不识别的枚举值就会报错,* likethis:can'tfinddatanodeforshardingcolumn:column_nameva
4、l:ffffffff */2.固定分片hash算法user_idfunc12,15、artitionLength">256,512配置说明:上面columns标识将要分片的表字段,algorithm分片函数,partitionCount分片个数列表,partitionLength分片范围列表分区长度:默认为最大2^n=1024,即最大支持1024分区约束:count,length两个数组的长度必须是一致的。1024=sum((count[i]*length[i])).count和length两个向量的点积恒等于1024用法例子: 本例的分区策略:希望将数据6、水平分成3份,前两份各占25%,第三份占50%。(故本例非均匀分区) //7、<---------------------1024------------------------>8、 //9、<----256--->10、<----256--->11、<----------512---------->12、 //13、partition014、partition115、partition216、 //17、共2份,故count[0]=218、共1份,故count[1]=119、 int[]count=newint[]{2,1}; 20、int[]length=newint[]{256,512}; PartitionUtilpu=newPartitionUtil(count,length); //下面代码演示分别以offerId字段或memberId字段根据上述分区策略拆分的分配结果 intDEFAULT_STR_HEAD_LEN=8;//cobar默认会配置为此值 longofferId=12345; StringmemberId="qiushuo"; //若根据offerId分配,partNo1将等于0,即按照上述分21、区策略,offerId为12345时将会被分配到partition0中 intpartNo1=pu.partition(offerId); //若根据memberId分配,partNo2将等于2,即按照上述分区策略,memberId为qiushuo时将会被分到partition2中 i
5、artitionLength">256,512配置说明:上面columns标识将要分片的表字段,algorithm分片函数,partitionCount分片个数列表,partitionLength分片范围列表分区长度:默认为最大2^n=1024,即最大支持1024分区约束:count,length两个数组的长度必须是一致的。1024=sum((count[i]*length[i])).count和length两个向量的点积恒等于1024用法例子: 本例的分区策略:希望将数据
6、水平分成3份,前两份各占25%,第三份占50%。(故本例非均匀分区) //
7、<---------------------1024------------------------>
8、 //
9、<----256--->
10、<----256--->
11、<----------512---------->
12、 //
13、partition0
14、partition1
15、partition2
16、 //
17、共2份,故count[0]=2
18、共1份,故count[1]=1
19、 int[]count=newint[]{2,1};
20、int[]length=newint[]{256,512}; PartitionUtilpu=newPartitionUtil(count,length); //下面代码演示分别以offerId字段或memberId字段根据上述分区策略拆分的分配结果 intDEFAULT_STR_HEAD_LEN=8;//cobar默认会配置为此值 longofferId=12345; StringmemberId="qiushuo"; //若根据offerId分配,partNo1将等于0,即按照上述分
21、区策略,offerId为12345时将会被分配到partition0中 intpartNo1=pu.partition(offerId); //若根据memberId分配,partNo2将等于2,即按照上述分区策略,memberId为qiushuo时将会被分到partition2中 i
此文档下载收益归作者所有