IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 达梦数据库-分区表管理 -> 正文阅读

[大数据]达梦数据库-分区表管理

当单表过大时,查询速度会变慢,因为要扫码的数据块就会多。这样客户就会觉得系统性能有问题。对表进行分区后,逻辑上表还是一张完整的表,但是每次扫码的时候,能合理运用分区key,就能大大减少IO。

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

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

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

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

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

4.多级分区:把上面三种分区进行任意组合,将表多次分区

1.范围分区表

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

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

CREATE?TABLE?t_range?(

A?INT,

B?VARCHAR,

C?DATETIME

)

PARTITION?BY?RANGE(C)

(

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(C)

(

??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(C)

(

??PARTITION?P1?TABLESPACE?"TBS_PARTA",

??PARTITION?P2?TABLESPACE?"TBS_PARTA",

??PARTITION?P3?TABLESPACE?"TBS_PARTA",

??PARTITION?P4?TABLESPACE?"TBS_PARTA"

);

?

4.多级分区

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

CREATE?TABLE?M_LIST(

A?INT,

B?VARCHAR2(20),

C?VARCHAR2(40)

)

PARTITION?BY?LIST(B)

SUBPARTITION?BY?RANGE(A)?SUBPARTITION?TEMPLATE(

???SUBPARTITION?SUB1?VALUES?LESS?THAN?(10),

???SUBPARTITION?SUB2?VALUES?LESS?THAN?(20),

???SUBPARTITION?SUB3?VALUES?EQU?OR?LESS?THAN?(MAXVALUE)

)

(

PARTITION?P1?VALUES?('湖北','湖南'),

PARTITION?P2?VALUES?('北京','上海'),

PARTITION?P3?VALUES?('山东','山西')

);

SUBPARTITION?TEMPLATE 是子模板关键字,这样分区P1、P2、P3各自就有了子模板 SUB1、SUB2、SUB3

已经就是达梦分区表的基本概念。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。icon-default.png?t=L9C2https://eco.dameng.com/

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:34:35  更:2021-10-23 12:36:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:55:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码