当前位置:嗨网首页>书籍在线阅读

09-子分区

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

子分区subpartitioning)是分区表中对每个分区的再次分割,又被称为复合分区composite partitioning)。MySQL从MySQL 5.1开始支持对已经通过RANGE或者LIST分区了的表再进行子分区,子分区既可以使用HASH分区,也可以使用KEY分区。例如:

mysql> CREATE TABLE ts (id INT, purchased DATE)

-> PARTITION BY RANGE(YEAR(purchased))

-> SUBPARTITION BY HASH(TO_DAYS(purchased))

-> SUBPARTITIONS 2

-> (

->  PARTITION p0 VALUES LESS THAN (1990),

->  PARTITION p1 VALUES LESS THAN (2000),

->  PARTITION p2 VALUES LESS THAN MAXVALUE

-> );

Query OK, 0 rows affected (0.11 sec)

表ts有3个RANGE分区,这3个分区中的每个分区(p0、p1、p2)又被进一步分成2个子分区,实际上,整个表被分成了 3×2 = 6个分区,由于PARTITION BY RANGE子句的作用,第一和第二个分区只保存purchased 列中值小于1990的记录。

复合分区适用于保存非常大量的数据记录。