mycat2:自定义范围分库分表以及后期扩容

1 篇文章 0 订阅
1 篇文章 0 订阅

在mycat服务下创建一个自定义名称的数据库:db

CREATE DATABASE db;

在mycat服务下创建一张自定义名称表:table

/*+ mycat:createTable{
"schemaName":"db",//数据库名
"shardingTable":{
"createTableSQL":"
CREATE TABLE `db`.`table` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARSET = utf8mb4
",
"function":{
"clazz":"io.mycat.router.mycat1xfunction.AutoPartitionByLong",
"properties": {
"type":"Long",
"defaultNode": 0,//默认节点,如果存id等于2001的没有指定表就会存到table_0里
"columnName": "id",//以id分配
},
"ranges": {
"0-1000":0,//id是1-1000的存table_0
"1001-2000":1,//id是1001-2000的存table_1
}
},
"partition":{
"data":[["c0","db","table_0","0","0","0"],["c0","db","table_1","0","1","1"]]
}
},
"tableName":"table"//表名
} */;

主要地方

"ranges": {
"0-1000":0,
"1001-2000":1,
}
//id是1-1000的存table_0
//id是1001-2000的存table_1

"partition":{
"data":[["c0","db","table_0","0","0","0"],["c0","db","table_1","0","1","1"]]
}
c0:集群名字或者数据源名字
db:物理库名字
table_0:物理表名字
0:总物理库下标(代表该表所属分库的下标,两个库,0就代表第一个库,1就代表第二个库,对应dbIndex);
0:每物理表下标(上面ranges下标);
0:总物理分表下标(上面ranges下标)。

效果

在这里插入图片描述

后期扩容

在这里插入图片描述

提前创建数据库和表,比如db1…和table_2…,想怎么取就怎么取

然后在ranges和data里添加新的内容就行了,然后重启mycat:restart

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伴随着编程慢慢长大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值