版权声明:遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_20417499/article/details/100672071
前面我们大概讲了一下怎么配置proxy:Sharding-proxy使用教程
现在来看一下简单的业务场景:
本地127.0.0.1:3306数据库database0,有2张表:
-
CREATE
DATABASE database0;
-
USE database0;
-
DROP
TABLE
IF
EXISTS
`goods_0`;
-
CREATE
TABLE
`goods_0` (
-
`goods_id`
bigint(
20)
NOT
NULL,
-
`goods_name`
varchar(
100)
COLLATE utf8_bin
NOT
NULL,
-
`goods_type`
bigint(
20)
DEFAULT
NULL,
-
PRIMARY
KEY (
`goods_id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8
COLLATE=utf8_bin;
-
DROP
TABLE
IF
EXISTS
`goods_1`;
-
CREATE
TABLE
`goods_1` (
-
`goods_id`
bigint(
20)
NOT
NULL,
-
`goods_name`
varchar(
100)
COLLATE utf8_bin
NOT
NULL,
-
`goods_type`
bigint(
20)
DEFAULT
NULL,
-
PRIMARY
KEY (
`goods_id`)
-
)
ENGINE=
InnoDB
DEFAULT
CHARSET=utf8
COLLATE=utf8_bin;
按照goods_id%2来划分,
如果goods_id%2为0,则分在goods_0,
如果goods_id%2为1,则分在goods_1。
直接在数据库创建两张表,那在navicat怎么才能操作分表呢?
下载一个proxy吧,数据库代理,也就是说,操作代理,就相当于操作数据库。
比如,你在代理上面执行:
INSERT INTO `goods` VALUES (1, 'z', 1);
那么它应该是插入到goods_1这张表里面。
那我们来配置一下分表规则吧:
启动proxy:
连接127.0.0.1:3307
连接本地127.0.0.1:3306,database0里面goods_0和goods_1,里面什么数据都没有
在proxy执行:
再看一下goods_0是否插入了数据:
goods_1:
分表操作ok
最后还需要关掉proxy: