LIST分区
MySQL中的LIST分区在很多方面类似于RANGE分区。
和RANGE分区一样,LIST分区的每个分区必须明确定义。
它们的主要区别在于,LIST分区是基于枚举出的值列表分区,RANGE是基于给定连续区间范围分区;
LIST分区通过使用PARTITION BY LIST(expr)
来实现 。
例如:
代码语言:javascript复制create table user(
a int(11),
b int(11)
)
partition by list(b)(
partition p0 values in (1,3,5,7,9),
partition p1 values in (2,4,6,8,0)
);
如果试图插入字段值(或分区表达式的返回值)不在分区值列表中的任何一行时,那么“INSERT”查询将失败并报错。
要重点注意的是,LIST分区没有类似如“VALUES LESS THAN MAXVALUE”这样的包含其他值在内的定义。所以将要匹配的任何值都必须在值列表中能够找到。