关于碎片整理的问题
来源:6-6 全量热备份-常见命令

小小同学William
2019-01-02
一个表只有两个字段,人工造了2千万的数据,数据空间文件(ibd)有 1.2G
在 navicat 中试了几次去执行 ALTER TABLE bigdata ENGINE=InnoDB; 最后都卡死了(等待至少15分钟以上没反应),得强制关闭 navicat 才行。
写 java 程序去执行也是一直不返回结果,像假死状态一样。
这种情况正常吗 ?
写回答
2回答
-
qq_坚持v_0
2019-01-04
1 ,在test库上面建立一个临时表,表结构跟600W的纪录的表结构一样,只是engine=innodb
2, 将600W纪录导入到临时表里面
3,在原表上建立触发器,同步数据到临时表里面
4, 观察一段时间,看原表与临时表数据是否一致
5 ,观察完毕,稳定后,执行rename table xxx.tbname to test.tbname_old_myisam;rename table test.tbname to xxx.tbname; 底切换过来,当然这个过程会有2秒的down time
---------------------
作者:黄杉
来源:CSDNmysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" ==>选择已存在的数据
触发器添加新加入数据
00 -
神思者
2019-01-02
alter table会锁表,数据越多,锁表时间越长。那在运营中就不能改表结构了吗?当然可以,只是需要利用一个神器,percona tookit包含了一个pt-online-schema-change的小工具,它能在运营中修改表结构,你可以百度一下
00
相似问题