考虑到设计人员没有规划好表的容量,某些业务表体积过大以后,需要将以前的表转换为分区表的需求,简单记录一下MySQL的分区表转换功能,
测试环境:MySQL-5.6.25和MySQL-5.7.7-rc
本着学习的原则,先把百度方法中的,中间表->锁表->导数据->rename,放在一边,先试着能否直接用alter来转换表结构,类似于Oracle的直接转换
先在MySQL-5.7.7-rc环境下建表
插入数据
试一下如下语句:ALTER TABLE students PARTITION BY KEY(sid) PARTITIONS 2;
ok成功了.......看上去这样子比百度方法"中间表->锁表->导数据->rename"要方便很多?
是的,反正都会锁表,虽然时间和效率上面不知道优劣,但是反正要锁表,都要停止这个表上的业务不是么.....