达梦分区表的使用。

当单表过大时,查询速度会变慢。对表进行分区后,逻辑上表还是一张完整的表,但是每次扫码的时候,能合理运用分区key,就能大大减少IO。

达梦数据库目前只支持水平分区表:表按照行拆分成多个分区,每个分区和主表有相同的列和约束条件。

目前水平分区主要支持4中类型

1.范围分区:对表某列上的值范围进行分区

2.哈希分区:按分区数进行散列分区,每个分区大小差不多。

3.列表分区:如果某列的值只有几个,基于这样的特点我们可以采用列表分区

1.范围分区表

1.创建范围分区时要指定默认分区,否则回因数据不能匹配分区后,而插入失败

2.创建时,可以指定不同表空间

CREATE TABLE t_range (

A INT,

B VARCHAR,

C DATETIME

)

PARTITION BY RANGE©

(

PARTITION P1 VALUES LESS THAN (‘2021-09-01’) TABLESPACE “TBS_PARTA”,

PARTITION P2 VALUES LESS THAN (‘2021-10-01’) TABLESPACE “TBS_PARTA”,

PARTITION P3 VALUES LESS THAN (‘2021-11-01’) TABLESPACE “TBS_PARTB”,

PARTITION P4 VALUES LESS THAN (‘2021-12-01’) TABLESPACE “TBS_PARTB”,

PARTITION P5 VALUES EQU OR LESS THAN(MAXVALUE) TABLESPACE “TBS_PARTB”

);

查看分区表信息的SQL

select table_name, partitioning_type,partition_count from all_part_tables where table_name=‘T_RANGE’

select table_name,partition_name,high_value from all_tab_partitions where table_name=‘T_RANGE’;

2.列表分区表

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

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

CREATE TABLE LOCATION(

A INT,

B VARCHAR2(20),

C char(10)

)

PARTITION BY LIST©

(

PARTITION P1 VALUES (‘湖北’,‘湖南’) TABLESPACE “TBS_PARTA”,

PARTITION P2 VALUES (‘山东’,‘山西’) TABLESPACE “TBS_PARTA”,

PARTITION P3 VALUES (‘河南’,‘河北’) TABLESPACE “TBS_PARTA”,

PARTITION P4 VALUES (‘北京’,‘上海’) TABLESPACE “TBS_PARTA”,

PARTITION P_DEFAULT VALUES(default)

);

3.哈希分区表

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

CREATE TABLE MY_HASH(

A INT,

B VARCHAR2(20),

C char(10)

)

PARTITION BY HASH©

(

PARTITION P1 TABLESPACE “TBS_PARTA”,

PARTITION P2 TABLESPACE “TBS_PARTA”,

PARTITION P3 TABLESPACE “TBS_PARTA”,

PARTITION P4 TABLESPACE “TBS_PARTA”

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值