单片表
介绍
单片表只在一个MySQL分片创建表,不分片。一个数据库中并不是所有表都很大,某些表是可以不用进行切分的,单片表是相对分片表来说的,就是指那些不需要作数据切分的表。
示例
单片表创建示例:
/*建表语句*/
CREATE TABLE IF NOT EXISTS `employee1` (
`employee_id` int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
/*sharding语句*/
sharding @@table name='employee1' set type='single' and dn='order_db_1';
全局表
介绍
全局表是在MySQL所有分片进行建表,全局表有如下特性:
- 变动不频繁, 数据量总体变化不大。
- 数据规模不大。
- 全局表的select操作会随机发送到一个分片上执行。
- 全局表的insert、delete、update操作会发送到所有分片执行,保障每个分片上的表数据是一致的。
示例
全局表创建示例:
/*建表语句*/
CREATE TABLE IF NOT EXISTS `employee2` (
`employee_id` int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
/*sharding语句*/
sharding @@table name='employee2' set type='global' and dn='order_db_1,order_db_2,order_db_3,order_db_4,order_db_5';