网站建设制作细节,中国交通建设集团有限公司级别,wordpress 右侧,广州技术支持:奇亿网站建设分库分表解决的问题 单表数据量过大带来的性能和存储容量的限制的问题#xff1a; 索引效率下降读写瓶颈存储容量限制事务性能问题分库分表架构 再搭建一对主从复制节点#xff0c;3307主节点#xff0c;3309从节点配置数据源 dw1 , dr1,创建集群c1创建逻辑库 CREATE DATAB…分库分表解决的问题 单表数据量过大带来的性能和存储容量的限制的问题 索引效率下降读写瓶颈存储容量限制事务性能问题分库分表架构 再搭建一对主从复制节点3307主节点3309从节点配置数据源 dw1 , dr1,创建集群c1创建逻辑库 CREATE DATABASE clusterdb;创建广播表 BROADCAST代表广播表意味着所有的数据源都会创建这张表
CREATE TABLE clusterdb.dict_type (
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键,
type_id int(11) NOT NULL COMMENT 业务类型id,
name varchar(255) DEFAULT NULL COMMENT 名称,
PRIMARY KEY (id) USING BTREE
)ENGINEInnoDB DEFAULT CHARSETutf8 COMMENT类型字典 BROADCAST;
添加数据
INSERT INTO clusterdb.dict_type VALUES (1,1,发货单);
INSERT INTO clusterdb.dict_type VALUES (2,2,收货单);
INSERT INTO clusterdb.dict_type VALUES (3,3,出库单);
INSERT INTO clusterdb.dict_type VALUES (4,4,入库单);
INSERT INTO clusterdb.dict_type VALUES (5,5,出室单);
INSERT INTO clusterdb.dict_type VALUES (6,6,入室单);
验证一下是否每个数据节点都有数据创建分片库表 分库分片表就是把数据按照特定的算法分配到不同的数据库表中达到降低单表数据量过大导致的效率问题。
CREATE TABLE clusterdb.orders( id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键, order_type int(11) NOT NULL COMMENT 业务类型id, order_name varchar(255) DEFAULT NULL COMMENT 名称, PRIMARY KEY (id) USING BTREE )ENGINEINNODB DEFAULT CHARSETutf8 dbpartition BY mod_hash(id) tbpartition BY mod_hash(id) tbpartitions 1 dbpartitions 2; INSERT into clusterdb.orders values(1,1,test1);
INSERT into clusterdb.orders values(2,1,test2);
INSERT into clusterdb.orders values(3,2,test3);
INSERT into clusterdb.orders values(4,3,test4);
INSERT into clusterdb.orders values(5,3,test5);
INSERT into clusterdb.orders values(6,4,test6);
INSERT into clusterdb.orders values(7,5,test7);
INSERT into clusterdb.orders values(8,5,test8);
INSERT into clusterdb.orders values(9,5,test9);
INSERT into clusterdb.orders values(10,5,test10); 验证结果 在mycat进行查询 select * from clusterdb.orders; 能得到全部的结果 主节点1自动创建clusterdb_0 orders_0 并且存放的是id偶数的数据 主节点2自动创建clusterdb_1 orders_1 并且存放的id是基数的数据 到这里分库分表就成功啦