从5.1版本开始,mysql就支持分区,不过只是not production-ready,关于分区,mysql的手册已经作了说明,下面是部分摘录。
分区的一些优点:
1)可以存储更多的数据。
2)可以通过删除与那些数据有关的分区,很容易地删除那些已经失去保存意义的数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区来很方便地实现。
3)极大地优化一些查询,来提高那些常用查询的效率。
4)涉及到例如SUM() 和 COUNT()这样聚合函数的查询,可以很容易地进行并行处理。
5)通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。
mysql支持的LIST 分区类型介绍如下:LIST分区中每个分区的定义和选择是基于某列的值从属于一个集合。
CREATE TABLE employees (
id INT NOT NULL,
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,
store_id INT
)
PARTITION BY LIST(store_id)
PARTITION pNorth VALUES IN (3,5,6,9,17),
PARTITION pEast VALUES IN (1,2,10,11,19,20),
PARTITION pWest VALUES IN (4,12,13,14,18),
PARTITION pCentral VALUES IN (7,8,15,16)
);
如果试图插入列值(或分区表达式的返回值)不在分区值列表中的一行时,那么“INSERT”查询将失败并报错。 |