记一次行云数据库(CirroData) 分区 创建/修改/添加数据等

1. 需求:

公司用到了行云数据库(国产库),属实有点哪个。
因为数据量太大,需要进行优化,这里采用的是数据库分区来优化。

2. 分区概念:

数据分区是一种物理数据库的设计技术,它的目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。
分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值,分区的优点如下:

1、相对于单个文件系统或是硬盘,分区可以存储更多的数据;

2、数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可;

3、精准定位分区查询数据,不需要全表扫描查询,大大提高数据检索效率;

4、可跨多个分区磁盘查询,来提高查询的吞吐量;

5、在涉及聚合函数查询时,可以很容易进行数据的合并;

3. 创建分区表:

这里是根据时间戳进行分区,即一天的数据 一个分区。
大家可以根据自己的实际数据来进行分区。

CREATE TABLE YJY.TEST 
(
	TIMEST VARCHAR(12),
	EPARCHY_CODE VARCHAR	(12),
	EPARCHY_NAME	VARCHAR	(15),
	AREA_CODE	VARCHAR	(30),
	AREA_NAME	VARCHAR	(150)
)
PARTITIONED BY (TIMEST);

4. 添加一个分区(创建一个分区)

刚刚只是创建一个具有分区功能的表,那么真正的分区还没创建,接下来创建分区:
内部表创建,即本地

ALTER TABLE YJY.TEST ADD PARTITION S20210330('20210330');

外部表创建,因为支持DBLINK,所以可外部创建

ALTER TABLE ext_table3 ADD PARTITION p1 (last_name = 'p1') WITH TABLE external_table @XCLOUD174;

5. 删除分区

删除指定分区,及分区内部的数据分片。删除一个分区不会影响其他的分区

ALTER TABLE YJY.TEST DROP PARTITION S20210330;

6. 清空分区

清空一个分区中的数据,保留分区、分片定义。

ALTER TABLE YJY.TEST TRUNCATE PARTITION S20210330;

7. 移动分区

将表的一个分区中的数据移动到内部表的一个分区中。
其中,desctable_name,descpar_name是目标表和目标分区;srctable_name,srcpar_name是来源表和来源分区。

ALTER TABLE test_user.temp_table ALTER PARTITION p_src EXCHANGE PARTITION p_desc WITH TABLE test_table;

8. 往分区中添加数据

将没有分区的表中的数据添加 到分区表中。

INSERT INTO YJY.TEST PARTITION ON(TIMEST = '20210330') select * from YJY.TEST2  where TIMEST='20210330';

如果有错误,希望大佬指出谢谢。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值