范围分区

按范围分区的表以这样的方式分区,即每个分区包含分区表达式值位于给定范围内的行。范围应该是连续的但不重叠,并使用 VALUES LESS THAN 运算符定义。对于接下来的几个示例,假设你要创建一个表格,如下所示,以保存 20 个视频商店链的人事记录,编号为 1 到 20:

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 NOT NULL,
    store_id INT NOT NULL
);

根据你的需要,可以通过多种方式按范围对此表进行分区。一种方法是使用 store_id 柱。例如,你可能决定通过添加 PARTITION BY RANGE 子句对表进行 4 种分区,如下所示:

ALTER TABLE employees PARTITION BY RANGE (store_id) (
    PARTITION p0 VALUES LESS THAN (6),
    PARTITION p1 VALUES LESS THAN (11),
    PARTITION p2 VALUES LESS THAN (16),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);

MAXVALUE 表示一个整数值,该值始终大于最大可能的整数值(在数学语言中,它用作最小上限)。

基于 MySQL 官方文档