【DM】达梦数据库中分区表的创建及查询操作

本文介绍了SQL中使用范围分区、列表分区和哈希分区创建和管理数据库表的方法,包括CREATETABLE语句示例,以及如何根据不同的分区列类型进行数据插入和查询优化。同时讨论了多级分区在复杂场景下的应用。
摘要由CSDN通过智能技术生成

| | >=10&&<100 |

| | >=100&&<1000 |

| | >=1000 |

建表

CREATE TABLE HA.INFO(

NAME VARCHAR(50),

PRICE INT

)

PARTITION BY RANGE(PRICE)(

PARTITION P1 VALUES LESS THAN (10),

PARTITION P2 VALUES LESS THAN (100),

PARTITION P3 VALUES LESS THAN (1000),

PARTITION P4 VALUES LESS THAN (MAXVALUE)

);

COMMIT;

插入数据

insert into HA.INFO values(‘铅笔’,1);

insert into HA.INFO values(‘笔记本’,22);

insert into HA.INFO values(‘蓝牙耳机’,868);

insert into HA.INFO values(‘电脑’,4599);

insert into HA.INFO values(‘牙刷’,8);

insert into HA.INFO values(‘水杯’,15);

查询

SQL> SELECT * FROM HA.INFO PARTITION(P1);

行号 NAME PRICE


1 铅笔 1

2 牙刷 8

已用时间: 0.605(毫秒). 执行号:100.

SQL> SELECT * FROM HA.INFO PARTITION(P2);

行号 NAME PRICE


1 笔记本 22

2 水杯 15

已用时间: 1.531(毫秒). 执行号:101.

SQL> SELECT * FROM HA.INFO PARTITION(P3);

行号 NAME PRICE


1 蓝牙耳机 868

已用时间: 0.866(毫秒). 执行号:102.

SQL> SELECT * FROM HA.INFO PARTITION(P4);

行号 NAME PRICE


1 电脑 4599

已用时间: 0.839(毫秒). 执行号:103.

LIST分区表


如果分区列是不连续的,那么范围分区将不再适用,这时候如果分区列上有一些固定的值,那么可以进行列表分区。

建表

CREATE TABLE HA.CITYS(

CITY VARCHAR(50),

PEOPLE VARCHAR(50)

)

PARTITION BY LIST(CITY)(

PARTITION P1 VALUES(‘北京’,‘天津’),

PARTITION P2 VALUES(‘郑州’,‘武汉’)

);

COMMIT;

插入数据

INSERT INTO HA.CITYS VALUES(‘北京’,‘赵剑’);

INSERT INTO HA.CITYS VALUES(‘天津’,‘刘华’);

INSERT INTO HA.CITYS VALUES(‘武汉’,‘吴枫’);

INSERT INTO HA.CITYS VALUES(‘郑州’,‘王鹏’);

COMMIT;

查询

SQL> SELECT * FROM HA.CITYS PARTITION(P1);

行号 CITY PEOPLE


1 北京 赵剑

2 天津 刘华

已用时间: 41.528(毫秒). 执行号:16.

SQL> SELECT * FROM HA.CITYS PARTITION(P2);

行号 CITY PEOPLE


1 武汉 吴枫

2 郑州 王鹏

已用时间: 0.787(毫秒). 执行号:17.

如果CITY不在分区里面怎么办

SQL> insert into ha.citys values(‘上海’,‘李娇’);

insert into ha.citys values(‘上海’,‘李娇’);

已用时间: 3.747(毫秒). 执行号:0.

SQL>

这种情况是根本无法插入数据的。

哈希分区表


哈希分区表是针对上面这种情况而设计的,有时候,分区列是离散的,且值的范围也不固定,这时候就要用到哈希分区表了。它在指定数量的分区中均等地划分数据。

建表

CREATE TABLE HA.HASHCITYS(

CITY VARCHAR(50),

PEOPLE VARCHAR(50)

)

PARTITION BY HASH(CITY)(

PARTITION P1,

PARTITION P2

);

COMMIT;

插入数据

INSERT INTO HA.HASHCITYS VALUES(‘北京’,‘赵剑’);

INSERT INTO HA.HASHCITYS VALUES(‘天津’,‘刘华’);

INSERT INTO HA.HASHCITYS VALUES(‘武汉’,‘吴枫’);

INSERT INTO HA.HASHCITYS VALUES(‘郑州’,‘王鹏’);

COMMIT;

查询

SQL> SELECT * FROM HA.HASHCITYS PARTITION(P1);

行号 CITY PEOPLE


1 武汉 吴枫

2 郑州 王鹏

已用时间: 0.706(毫秒). 执行号:26.

SQL> SELECT * FROM HA.HASHCITYS PARTITION(P2);

行号 CITY PEOPLE


1 北京 赵剑

2 天津 刘华

已用时间: 0.765(毫秒). 执行号:27.

这部分和列表分区是一样的。

插入数据

SQL> INSERT INTO HA.HASHCITYS VALUES(‘上海’,‘李娇’);

影响行数 1

已用时间: 0.805(毫秒). 执行号:28.

SQL> COMMIT;

操作已执行

已用时间: 2.454(毫秒). 执行号:29.

这里却能插入成功

查询

SQL> SELECT * FROM HA.HASHCITYS PARTITION(P2);

行号 CITY PEOPLE


1 北京 赵剑

2 天津 刘华

3 上海 李娇

已用时间: 0.447(毫秒). 执行号:32.

可以看到这条记录被自动划分到了P2分区当中。

多级分区表


有时候一次分区并不能准确地对数据进行分类,这时候就需要进行多级分区。

下面做一个三级分区。第一级:基于年级的列表分区。第二级:基于性别的列表分区。第三级:基于分数的范围分区。

建表

CREATE TABLE HA.STUDENTS(

NAME VARCHAR(50),

GRADE INT CHECK (GRADE IN (7,8,9)),

SEX CHAR(2) CHECK (SEX IN (‘男’,‘女’)),

CORES INT CHECK (CORES>=0 AND CORES<=100)

)

PARTITION BY LIST(GRADE)

SUBPARTITION BY LIST(SEX) SUBPARTITION TEMPLATE(

SUBPARTITION S1 VALUES (‘男’),

SUBPARTITION S2 VALUES (‘女’)

),

SUBPARTITION BY RANGE(CORES) SUBPARTITION TEMPLATE(

SUBPARTITION C1 VALUES LESS THAN (60),

SUBPARTITION C2 VALUES LESS THAN (80),

SUBPARTITION C3 VALUES LESS THAN (100)

)

(

PARTITION G1 VALUES (7),
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。


经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
ity.csdnimg.cn/images/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

总结

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。


经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

[外链图片转存中…(img-OSCM3iQu-1713523116385)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值