水平分区包括范围分区、哈希分区和列表分区三种。水平分区表的创建需要通过
 <PARTITION 子句>指定。
     范围(RANGE)分区,按照分区列的数据范围,确定实际数据存放位置的划分方式。
    列表(LIST)分区,通过指定表中的某一个列的离散值集,来确定应当存储在一起的
 数据。范围分区是按照某个列上的数据范围进行分区的,如果某个列上的数据无法通过划分
 范围的方法进行分区,并且该列上的数据是相对固定的一些值,可以考虑使用 LIST 分区。
 一般来说,对于数字型或者日期型的数据,适合采用范围分区的方法;而对于字符型数据,
 取值比较固定的,则适合于采用 LIST 分区的方法。
    哈希(HASH)分区,对分区列值进行 HASH 运算后,确定实际数据存放位置的划分方
 式,主要用来确保数据在预先确定数目的分区中平均分布,允许只建立一个 HASH 分区。在
 很多情况下,用户无法预测某个列上的数据变化范围,因而无法实现创建固定数量的范围分
 区或 LIST 分区。在这种情况下,DM 哈希分区提供了一种在指定数量的分区中均等地划分
 数据的方法, 基于分区键的散列值(HASH 值)将行映射到分区中。当用户向表中写入数
 据时,数据库服务器将根据一个哈希函数对数据进行计算,把数据均匀地分布在各个分区中。
 在哈希分区中,用户无法预测数据将被写入哪个分区中。
     在很多情况下,经过一次分区并不能精确地对数据进行分类,这时需要多级分区表。在
 进行多级分区的时候,三种分区类型还可以交叉使用。
例子:
CREATE TABLE "your_table_name" 
("id" INT NOT NULL,"date_column" DATE NOT NULL,... -- 其他字段定义
) 
PARTITION BY RANGE(DATE_COLUMN) -- 指定分区键为date_column
(PARTITION p0 VALUES LESS THAN ('2020-01-01'), -- 小于2020年1月1日的数据PARTITION p1 VALUES LESS THAN ('2021-01-01'), -- 2020年1月1日到2021年1月1日之间的数据PARTITION p2 VALUES LESS THAN ('2022-01-01'), -- 2021年1月1日到2022年1月1日之间的数据... -- 可以根据需要定义更多的分区PARTITION pn VALUES LESS THAN (MAXVALUE) -- 大于或等于最后一个范围上限的数据
);使用说明
 1. <表名>指定所要建立的基表名;
 2. <PARTITION 子句>用来指定水平分区。其中 RANGE 和 HASH 可以指定一个或多
   个列作为分区列,LIST 只能指定一个列作为分区列;
   1) “PARTITION BY RANGE……”子句用来指定范围分区,然后在每个分区中分
    区列的取值通过 VALUES 子句指定。
   2) “PARTITION BY LIST……”子句用来指定 LIST 分区,然后在每个分区中分
     区列的取值通过 VALUES 子句指定。当用户向表插入数据时,只要分区列的
     数据与 VALUES 子句指定的数据之一相等,该行数据便会写入相应的分区子
     表中。LIST 分区的分区范围值必须唯一,不能重复。
   3) “PARTITION BY HASH……”子句用来指定 HASH 分区。
 3. 分区列类型必须是数值型、字符型或日期型,不支持 BLOB、CLOB、IMAGE、TEXT、
     LONGVARCHAR、BIT、BINARY、VARBINARY、LONGVARBINARY、BFILE、时间间隔类
     型、虚拟列和用户自定义类型为分区列;
 4. 水平分区表指定主键和唯一约束时,分区键必须都包含在主键和唯一约束中,但是
     全局唯一索引不受此约束;
 5. 不能在水平分区表上建立自引用约束;
 6. 普通环境中,水平分区表的各级分区数的总和上限是 65535;MPP 环境下,水平
     分区 表 的 各 级 分 区 总 数 上 限 取 决 于 INI 参数 MAX_EP_SITES ,上 限 为 2(16 -
     log2MAX_EP_SITES)。比如:当 MAX_EP_SITES 为默认值 64 时,分区总数上限为 1024;
 7. 可以定义主表的 BRANCH 选项,但不能对水平分区子表进行 BRANCH 项设置,子
     表的 BRANCH 项只能通过主表继承得到;
 8. 水平分区表不支持自增列;
 9. 不允许引用水平分区子表作为外键约束;
 10. 水平分区子表删除后,会将子表上的数据一起删除;
 11. 范围分区和哈希分区的分区键可以多个,最多不超过 16 列;LIST 分区的分区键
     必须唯一;
 12. 范围分区表使用说明:
     1) 范围分区支持 MAXVALUE 值的使用,MAXVALUE 代表一个比任何值都大的值。
     MAXVALUE 值需要用户指定才能使用,作为分区中的最大值。
     2) 范围分区的范围值表达式类型应与分区列类型一致,否则按分区列类型进行类
     型转换。
     3) 对于范围分区,增加分区必须在最后一个分区范围值的后面添加,要想在表的
     开始范围或中间增加分区,应使用 SPLIT PARTITION 语句。
 13. LIST 分区表使用说明:
     1) LIST 分区支持 DEFAULT 关键字的使用,所有不满足分区条件的数据,都划
     分为 DEFAULT 的分区,但 DEFAULT 关键字需要用户指定,系统不会自动创
     建 DEFAULT 分区。
     2) LIST 水平分区表为堆表时,其各子表必须位于同一个表空间。
     3) LIST 分区范围值不能为 NULL。
     4) LIST 分区子表范围值个数与数据页大小和相关系统表列长度相关,存在以下
     限制:
         a) 4K 页,单个子表最多支持 120 个范围值。
         b) 8K 页,单个子表最多支持 254 个范围值。
         c) 16K 或 32K 页,单个子表最多支持 270 个范围值。
 14. 组合水平分区表层次最多支持八层;
 15. 普通表、堆表、列存储表均支持多级分区。
特别注意第八项:水平分区表不支持自增列;