MySQL的分区表
程序员文章站
2024-03-09 10:00:53
...
概述
Hash分区
CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(30),
store_id INT
)
PARTITION BY HASH(store_id) PARTITIONS 4;
新建一个employees
表,这个表以对store_id进行hash后的值确定存储在哪个分区
,PARTITIONS 4
是总共分为4个分区
insert into `lcc`.`employees` ( `id`, `name`, `store_id`) values ( '4', 'dd', '4');
insert into `lcc`.`employees` ( `id`, `name`, `store_id`) values ( '1', 'aa', '1');
insert into `lcc`.`employees` ( `id`, `name`, `store_id`) values ( '5', 'ee', '1');
insert into `lcc`.`employees` ( `id`, `name`, `store_id`) values ( '2', 'bb', '2');
insert into `lcc`.`employees` ( `id`, `name`, `store_id`) values ( '3', 'cc', '3');
添加几条数据
查询分区
SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'employees'
可以看到p1分区有2条数据,其他分区只有一条,和我们插入的一致
查询所有分区
select * from employees ;
只查询某个分区的数据
select * from employees partition(p1) ;