黑马程序员技术交流社区

标题: 【郑州校区】品优购电商系统部署 Day2 五 [打印本页]

作者: 我是楠楠    时间: 2020-4-14 10:27
标题: 【郑州校区】品优购电商系统部署 Day2 五
【郑州校区】品优购电商系统部署 Day2 五

1.3.4 MyCat 分片测试
进入 mycat ,执行下列语句创建一个表:
[AppleScript] 纯文本查看 复制代码
 CREATE TABLE tb_test (
id BIGINT(20) NOT NULL,
title VARCHAR(100) NOT NULL ,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8

创建后你会发现,MyCat 会自动将你的表转换为大写,这一点与 Oracle 有些类似。


我们再查看 MySQL 3 个库,发现表都自动创建好啦。好神奇。
接下来是插入表数据,注意,在写 INSERT 语句时一定要写把字段列表写出来,否则会出现下列错误提示:
错误代码: 1064
partition table, insert must provide ColumnList
我们试着插入一些数据:

[AppleScript] 纯文本查看 复制代码
INSERT INTO TB_TEST(ID,TITLE) VALUES(1,'goods1');
INSERT INTO TB_TEST(ID,TITLE) VALUES(2,'goods2');
INSERT INTO TB_TEST(ID,TITLE) VALUES(3,'goods3');

我们会发现这些数据被写入到第一个节点中了,那什么时候数据会写到第二个节点中呢?
我们插入下面的数据就可以插入第二个节点了

[AppleScript] 纯文本查看 复制代码
INSERT INTO TB_TEST(ID,TITLE) VALUES(5000001,'goods5000001'); 

因为我们采用的分片规则是每节点存储 500 万条数据,所以当 ID 大于 5000000 则会存储到第二个节点上。
目前只设置了两个节点,如果数据大于 1000 万条,会怎么样呢?执行下列语句测试一下

[AppleScript] 纯文本查看 复制代码
INSERT INTO TB_TEST(ID,TITLE) VALUES(10000001,'goods10000001');







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2