微服务 教程
1085个小节阅读:196.8k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
有些业务需要按照省份或区县来做保存,这类业务使用本条规则。
在这里,需定义三个值,规则均是在rule.xml中定义。
xxxxxxxxxx
#订单归属区域信息表
CREATE TABLE orders_ware_info(
`id` INT AUTO_INCREMENT comment '编号',
`order_id` INT comment '订单编号',
`address` VARCHAR(200) comment '地址',
`areacode` VARCHAR(20) comment '区域编号',
PRIMARY KEY(id)
);
xxxxxxxxxx
<table name="orders_ware_info" dataNode="dn1,dn2" rule="sharding-by-intfile"></table>
xxxxxxxxxx
<tableRule name="sharding-by-intfile">
<rule>
<columns>areacode</columns>
<algorithm>hash-int</algorithm>
</rule>
</tableRule>
注意:
其中,sharding-by-intfile-test是规则名,会在schema.xml中用到。columns指的是对省份进行分片。algorithm是算法名,该算法必须在function中定义。
xxxxxxxxxx
<function name="hash-int" class="io.mycat.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int.txt</property>
<property name="type">1</property>
<property name="defaultNode">0</property>
</function>
注意:
- mapFile:指的是配置文件名
- type:默认值为0,0表示Integer,非零表示String。因为我接下来的测试是基于省份分片,所以需type指定为1。
- defaultNode 默认节点:小于0表示不设置默认节点,大于等于0表示设置默认节点 默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点。
xxxxxxxxxx
110=0
120=1
注意:
其中,110会被分发到第一个节点中,120分发被第二个节点中。
xxxxxxxxxx
mycat restart
xxxxxxxxxx
INSERT INTO orders_ware_info(id, order_id,address,areacode) VALUES (1,1,'北京','110');
INSERT INTO orders_ware_info(id, order_id,address,areacode) VALUES (2,2,'天津','120');
1.Mycat技术中分片枚举指的是___。
A 需要按照省份或区县来做保存
B 范围保存
C 时间保存
D 排序
1=>A