- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04_03_02_MyCAT离散分片案例2
需要实现的功能
配置下面两种ER分片,并结合日志分析子表插入过程中的不同
父表按照主键ID分片,字表的分片字段与主表ID关联,配置为ER分片父表的分片字段为其他字段,字表的分片字段与主表ID关联,配置为ER分片
1,程序指定分区的分片
此规则是在运行阶段有应用自主决定路由到那个分片。
此方法为直接根据字符子串(必须是数字)计算分区号(由应用传递参数,显式指定分区号)。
2,添加配置文件
在function.xml里面进行配置:
function name=sharding-by-substring-040302 class=org.opencloudb.route.function.PartitionDirectBySubString
property name=startIndex0/property
property name=size1/property
property name=partitionCount8/property
property name=defaultPartition0/property
/function
例如id=0-100000020在此配置中代表根据id中从startIndex=0,开始,截取siz=1位数字即0,0就是获取的分区,如果没传默认分配到defaultPartition
tableRule name=tr-sharding-substr-mc040302
rule
columnsCODE/columns
algorithmsharding-by-substring-040302/algorithm
/rule
/tableRule
在schema.xml里面进行配置:
table name=ORDER040302 primaryKey=ID dataNode=dn21,dn22 rule=tr-sharding-substr-mc040302/
3,建表并且录入数据
CREATE TABLE ORDER040302(ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,CODE VARCHAR(64),SN VARCHAR(64),CREATE_TIME DATETIME);
mysql CREATE TABLE ORDER040302(ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,CODE VARCHAR(64),SN VARCHAR(64),CREATE_TIME DATETIME);
Query OK, 0 rows affected (0.05 sec)
mysql
INSERT INTO ORDER040302(ID,CODE,SN,CREATE_TIME) VALUES(1,0beijing_03NOW());
INSERT INTO ORDER040302(ID,CODE,SN,CREATE_TIME) VALUES(2,1shanghai_10NOW());
mysql explain INSERT INTO ORDER040302(ID,CODE,SN,CREATE_TIME) VALUES(1,0beijing_03NOW());
+-----------+----------------------------------------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+----------------------------------------------------------------------------------------------------+
| dn21 | INSERT INT
文档评论(0)