在接受为期5天的达梦数据库DCP培训后,对达梦数据库这个国产品牌又有了一个进一步的认识,达梦数据库在国产数据库领域无论是从工作原理还是使用方法上都是最像Oracle数据库的;着重记录下达梦数据库分区表的用法和注意事项,避免以后踏坑。
一 、 达梦的分区表主要有一下几种方式: 范围分区、哈希分区、列表分区、组合分区
1. 范围(range)水平分区:对表中的某些列上值的范围进行分区,根据某个值的范 围,决定将该数据存储在哪个分区上;
2. 哈希(hash)水平分区:通过指定分区编号来均匀分布数据的一种分区类型,通过在 I/O 设备上进行散列分区,使得这些分区大小基本一致;
3. 列表(list)水平分区:通过指定表中的某个列的离散值集,来确定应当存储在一起的数据。例如,可以对表上的 status 列的值在('A','H','O')放在一个 分区,值在('B','I','P')放在另一个分区,以此类推;
4. 多级分区表:按上述三种分区方区进行任意组合,将表进行多次分区,称为多级分区表。
分区表使用注意事项:
- 分区表建议取消主键,建唯一性本地索引防止数据重复【参考百度】
- 如果表中一定要主键,则分区范围一定要包含主键列
a. 分区表将子表分别存放在不同的表空间中,如果分区表有主键,并且主键并未包含在分区范围,则会出现以下情况:
SQL> create table test1(id int primary key, c1 int) partition by range (c1)
(partition p1 values less than (10) tablespace tbs1,
partition p2 values less than (20) tablespace tbs2,
partition p3 values less than (30) tablespac