高并发下的数据库设计水平分区之二篇

来源:互联网 发布:最新备案域名查询 编辑:程序博客网 时间:2024/05/29 19:14

接着【高并发下的数据库设计水平分区之一篇】,接下来介绍对表分区进行修改、合并、重定义、删除分区。

由于数据库的数据是动态的,所以根据数据的变化,分区的策略有所改变。如:原来表分区可对其添加、修改、删除或可对其分解或合并。

分区示例图如下图一

高并发下的数据库设计水平分区之二篇

分区示例图如下图二

高并发下的数据库设计水平分区之二篇

分区示例图如下图三

高并发下的数据库设计水平分区之二篇

表分区修改

alter table语句相信程序员都很熟悉,首先使用add partition 关键字,可对已存在的分区表进行添加,这里添加其实就是修改。

1、添加RANGE方式最大值分区

实现语句如:

Alter table order add partition (

partition p5 values less than(maxvalue)

)

表分区合并与分解

使用 reorganize partition 关键字

1、RANGE合并分区,将原来的 p0,p1分区合并起来放到新的 p0 分区中

实现语句如下:

Alter table order reorganize partition p0,p1 into(

partition p0 values less than(20000)

)

2、做个相反过程,RANGE分解分区,将原来的 p0分区分解成新的 p0,p1分区

实现语句如下:

Alter table order reorganize partition p0 into (

partition p0 values less than(10000),

partition p1 values less than(20000)

)

3、也可根据需要重新对分区进行规划,将原来的p0,p1,p2,p3,p4,p5分区重新成p0,p1,p2分区

实现语句如下:

Alter table order reorganize partition p0,p1,p2,p3,p4,p5 into (

partition p0 values less than(20000),

partition p1 values less than(30000),

partition p2 values less than(maxvalue)

)

注:拆分或合并分区统称为重新定义分区,修改、拆分、合并分区不会丢失数据。

重新定义分区如语句:Alter table order partition by hash(orderId) partitions 5;

表分区删除

使用drop partition 关键字

1、删除p0分区

实现语句如下:

Alter table order drop partition p0

--删除多个分区可用下面语句,用逗号隔开

Alter table order drop partition p0,p1

2、删除所有分区

实现语句如下:

Alter table order remove partitioning

注:这里有必要说明一下,删除分区会把分区所有数据进行删除等同执行delete语句,所以删除分区时要谨慎。建议如果数据有用,就不能做删除分区。

不定期将写

【高并发数据库设计水平分区之三篇】不同引擎的分区特性、分区的限制性

【高并发数据库设计水平分区之四篇】数据库服务器集群分区

【高并发数据库设计水平分区业务示例场景】

阅读全文
0 0
原创粉丝点击