1分区表
在许多中大型的企业的数据库应用中,要处理的数据量可能会达到 TB
级,对于数据量大的表执行全表扫描或者 DML 操作时,效率是非常低的。
为了提高数据库在大数据量读写操作和查询时的效率,达梦数据库提供了对
表和索引进行分区的技术,把表和索引等数据库对象中的数据分割成小的单位,
分别存放在一个个单独的段中,用户对表的访问转化为对较小段的访问,以改善
大型应用系统的性能。
1.1范围分区表
先创建多个不同的表空间
查询创建成功
select NAME,TOTAL_SIZE from v$tablespace;
创建范围分区表
查看确认刚刚创建表的类型显示为分区表
select table_name,PARTITIONED from dba_tables where table_name=‘R_CTIY’;
对分区表插入数据
查看分区表的分区,显示为4个分区
select table_name,partition_name from dba_tab_partitions where
table_name=‘R_CTIY’;
查询分区最高值
Select DBA_TAB_PARTITIONS.PARTITION_NAME,DBA_TAB_PARTITIONS.HIGH_VALUE from SYS.DBA_TAB_PARTITIONS where DBA_TAB_PARTITIONS.TABLE_NAME = ‘R_CTIY’;
查询各个分区中的记录数
可以看到每个分区都只有1条数据
插入大于最大限制的值则会报错
新增分区并插入数据
分区最大不设置限制后,多大都可以插入
1.2列表分区表
列表分区按列上面的值进行分区,一般用于区号,城市,国别,分散较小的数值。
创建时候,也要有默认分区
查询各个分区中的记录数
因为没插入深圳相关的数据,所以p4为空
查看分区表的分区,显示为4个分区
加默认分区
可以看到数据成功插到p4了
注:列表分区表也可以设置分配在不同表空间里
1.3哈希分区表
如果表中的列值不满足范围分区和列表分区,那么就可以考虑使用哈希分区。数据库就会根据分区键的散列值将行映射到分区。是数据能均匀的分布在各个分区
建表插数据
查看数据分布情况
如果不需指定分区表名,可以通过指定哈希分区个数来建立哈希分区表。
PARTITIONS 后的数字表示哈希分区的分区数,STORE IN 子句中指定了哈希
分区依次使用的表空间。
例如:
不指定表空间则默认分给了MAIN
1.4多级分区表
如果数据表经过一次分区后,单个子分区还是很大,就可以考虑对子分区进行再分区。如果建一个LIST-RANG分区
建表插数据
可以看到有4个子模板
插入数据
数据已按地区分配
社区地址:https://eco.dameng.com