一、分区表类型
1、 范围分区(RANGE)
2、 哈希分区(HASH)
3、 列表分区(LIST)
二、概念
分区是相互独立且可以存储于不同的存储介质上的,完全可满足企业高可用性、 均衡IO、降低维护成本、提高查询性能的要求
2.1 限制
分区列类型必须是数值型、字符型或日期型,不支持BLOB、CLOB、IMAGE、TEXT、 LONGVARCHAR、BIT、BINARY、VARBINARY、LONGVARBINARY、时间间隔类型和用户自定义类型为分区列。
范围分区和哈希分区的分区键可以多个,最多不超过16列;LIST分区的分区键 必须唯一。
水平分区表指定主键和唯一约束时,分区键必须都包含在主键和唯一约束中。
水平分区表不支持临时表。
不能在水平分区表上建立自引用约束。
普通环境中,水平分区表的各级分区数的总和上限是 65535;MPP 环境下,水平 分区表的各级分区总数上限取决于INI参数MAX_EP_SITES,上限为2 ^( 16 - log2MAX_EP_SITES)。比如:当MAX_EP_SITES为默认值64时,分区总数上 限为1024。
不允许对分区子表执行任何DDL操作。
哈希分区支持重命名、删除约束、设置触发器是否启用的修改操作。
范围分区支持分区合并、拆分、增加、删除、交换、重命名、删除约束、设置触发 器是否生效操作。
LIST分区支持分区增加、删除、交换、重命名、删除约束、设置触发器是否生效操作。
LIST分区范围值不能为NULL。
三、实践
3.1 范围分区
# 创建分区表
create table r_t1 (pid int primary key ,id int)
partition by range (pid)
(partition p1 values less than (101),
partition p2 values less than (201));
# 添加数据