插入快 查询慢
分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在 I/O 设备上进行散列分区,使得这些分区大小一致。建议分区的数量采用 2 的 n 次方,这样可以使得各个分区间数据分布更加均匀。 将分区列的值进行 hash 运算,然后将数据平均分配各个子分区,存储数据非常快,取数据慢,如果 hash 分区不指定分区表名,那就通过指定的哈希分区数来创建。
分区表名统一使用 ==DMHASHPART+分区号(从 0 开始)==作为分区名。
创建哈希分区表
CREATE TABLE TEST.T5
(
ID INT,
NAME CHAR(10)
)
PARTITION BY HASH (ID)
(
PARTITION "01",
PARTITION "02",
PARTITION "03",
PARTITION "04"
)
storage(initial 1, next 1, minextents 1, fillfactor 0);
创建20个哈希分区表
想要创建的哈希分区较多,如想要创建20个时
CREATE TABLE TEST.T6
(
ID INT,
NAME CHAR(10)
)
PARTITION BY HASH(ID) PARTITIONS 20;