MySQL大数据表优化——表分区
- 分区的意义:
- 与传统的单表不分区相比,分区表可存储更多的数据。
- 对于已经失去保存意义的数据,可以通过删除分区,很容易删除。
- 通过对表的分区。可以提升插入速度。
- 按照表分区的规则查询,原本十多秒才能查询到的数据,可以做到秒回
- 涉及到sum(),COUNT()的聚合查询。可以很容易的做到并行处理。只需要将查询的结果合并即可。
- 可以跨多个磁盘来分散查询,提高更大的吞吐量。
2.注意事项:
-
分区列索引约束
-
- 若表有primary key或unique key,则分区表的分区列必须包含在primary key或unique key列表里,这是为了确保主键的效率
- 分区条件列不能为空。
3. 四种分区类型
-
RANGE 分区
-
- 基于属于一个给定连续区间的列值,把多行分配给分区
- 区间要连续且不能相互重叠,使用VALUES LESS THAN操作符来进行定义
- Sql
CREATE TABLE employees (
id INT NOT NULL AUTO_INCREMENT COMMENT '监控设备',,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL,
PRIMARY KEY (`id`,`store_id