MySQL对表进行KEY分区,新增,减少,删除和取消等操作

引用MySQL表RANGE分区,新增,删除,重组,效率对比这篇文章的表作为示例。

KEY分区管理

key分区和hash分区比较相似。

创建表时进行分区

CREATE TABLE `student_1` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `NAME` varchar(30) NOT NULL,
  `SEX` char(2) NOT NULL,
  `AGE` int(11) NOT NULL,
  `CLASS` varchar(10) NOT NULL,
  `GRADE` varchar(20) NOT NULL,
  `HOBBY` varchar(100) DEFAULT NULL,
  `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`,`AGE`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
PARTITION BY KEY(AGE) PARTITIONS 5;

为现有数据的表进行分区

常规分区

ALTER TABLE `student_1` PARTITION BY KEY(AGE) PARTITIONS 5;

线性分区

ALTER TABLE `student_1` PARTITION BY LINEAR KEY(AGE) PARTITIONS 5;

新增分区

增加2个分区

ALTER TABLE student_1 add PARTITION partitions 2;

减少分区

减少3个分区

ALTER TABLE student_1 COALESCE PARTITION 3;

查看分区的数据量

SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'student_1';

删除分区

当删除一个分区,该分区中所有的数据同时也被删除了。

ALTER TABLE student_1 DROP PARTITION p1;

取消分区

alter table student_1 remove partitioning;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值