1分区表

在许多中大型的企业的数据库应用中,要处理的数据量可能会达到 TB
级,对于数据量大的表执行全表扫描或者 DML 操作时,效率是非常低的。
为了提高数据库在大数据量读写操作和查询时的效率,达梦数据库提供了对
表和索引进行分区的技术,把表和索引等数据库对象中的数据分割成小的单位,
分别存放在一个个单独的段中,用户对表的访问转化为对较小段的访问,以改善
大型应用系统的性能。

1.1范围分区表

先创建多个不同的表空间

达梦数据表转MySQL 在线转换_sql


查询创建成功

select NAME,TOTAL_SIZE from v$tablespace;

达梦数据表转MySQL 在线转换_数据库_02


创建范围分区表

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_03


查看确认刚刚创建表的类型显示为分区表

select table_name,PARTITIONED from dba_tables where table_name=‘R_CTIY’;

达梦数据表转MySQL 在线转换_分区表_04


对分区表插入数据

达梦数据表转MySQL 在线转换_数据库_05

查看分区表的分区,显示为4个分区

select table_name,partition_name from dba_tab_partitions where

table_name=‘R_CTIY’;

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_06


查询分区最高值

Select DBA_TAB_PARTITIONS.PARTITION_NAME,DBA_TAB_PARTITIONS.HIGH_VALUE from SYS.DBA_TAB_PARTITIONS where DBA_TAB_PARTITIONS.TABLE_NAME = ‘R_CTIY’;

达梦数据表转MySQL 在线转换_dba_07


查询各个分区中的记录数

达梦数据表转MySQL 在线转换_分区表_08


可以看到每个分区都只有1条数据插入大于最大限制的值则会报错

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_09


新增分区并插入数据

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_10


达梦数据表转MySQL 在线转换_sql_11

分区最大不设置限制后,多大都可以插入

达梦数据表转MySQL 在线转换_数据库_12


达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_13

1.2列表分区表

列表分区按列上面的值进行分区,一般用于区号,城市,国别,分散较小的数值。

达梦数据表转MySQL 在线转换_分区表_14


创建时候,也要有默认分区

达梦数据表转MySQL 在线转换_分区表_15


达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_16


达梦数据表转MySQL 在线转换_分区表_17


查询各个分区中的记录数

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_18


因为没插入深圳相关的数据,所以p4为空

查看分区表的分区,显示为4个分区

达梦数据表转MySQL 在线转换_分区表_19


加默认分区

达梦数据表转MySQL 在线转换_dba_20


达梦数据表转MySQL 在线转换_数据库_21

可以看到数据成功插到p4了

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_22


注:列表分区表也可以设置分配在不同表空间里

达梦数据表转MySQL 在线转换_数据库_23

1.3哈希分区表

如果表中的列值不满足范围分区和列表分区,那么就可以考虑使用哈希分区。数据库就会根据分区键的散列值将行映射到分区。是数据能均匀的分布在各个分区

达梦数据表转MySQL 在线转换_sql_24

建表插数据

达梦数据表转MySQL 在线转换_数据库_25


查看数据分布情况

达梦数据表转MySQL 在线转换_sql_26


如果不需指定分区表名,可以通过指定哈希分区个数来建立哈希分区表。

达梦数据表转MySQL 在线转换_数据库_27


PARTITIONS 后的数字表示哈希分区的分区数,STORE IN 子句中指定了哈希

分区依次使用的表空间。

例如:

达梦数据表转MySQL 在线转换_sql_28


不指定表空间则默认分给了MAIN

1.4多级分区表

如果数据表经过一次分区后,单个子分区还是很大,就可以考虑对子分区进行再分区。如果建一个LIST-RANG分区

达梦数据表转MySQL 在线转换_分区表_29


建表插数据

达梦数据表转MySQL 在线转换_达梦数据表转MySQL 在线转换_30


可以看到有4个子模板

达梦数据表转MySQL 在线转换_分区表_31


插入数据

达梦数据表转MySQL 在线转换_分区表_32


达梦数据表转MySQL 在线转换_sql_33


数据已按地区分配

达梦数据表转MySQL 在线转换_数据库_34