在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下标)。