mysql 5.7 分区表_MySQL普通表转换为分区表(MySQL-5.6.25,MySQL-5.7.7-rc)

本文介绍了如何在MySQL 5.7环境中将普通表直接转换为分区表,通过ALTER TABLE语句实现,避免了创建中间表、锁定、数据迁移等复杂步骤。测试表明,原有数据会自动迁移到新的分区表中。尽管可能存在短暂的业务停机,但在有严格不停机要求的情况下,可以借助主从结构和应用层配置切换来减少影响。
摘要由CSDN通过智能技术生成

考虑到设计人员没有规划好表的容量,某些业务表体积过大以后,需要将以前的表转换为分区表的需求,简单记录一下MySQL的分区表转换功能,

测试环境:MySQL-5.6.25和MySQL-5.7.7-rc

本着学习的原则,先把百度方法中的,中间表->锁表->导数据->rename,放在一边,先试着能否直接用alter来转换表结构,类似于Oracle的直接转换

先在MySQL-5.7.7-rc环境下建表

9db953f2412a530b059bbce1b0de8081.png

插入数据

6667d07ae7641a17c308596a023d4a4c.png

试一下如下语句:ALTER TABLE students PARTITION BY KEY(sid) PARTITIONS 2;

223993b65d109dd761a4cb2c044c91c4.png

ok成功了.......看上去这样子比百度方法"中间表->锁表->导数据->rename"要方便很多?

是的,反正都会锁表,虽然时间和效率上面不知道优劣,但是反正要锁表,都要停止这个表上的业务不是么.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值