暂无图片
mysql中的optimize 大表,会导致表无法提供业务,这个有替代方法吗?
我来答
分享
暂无图片 匿名用户
mysql中的optimize 大表,会导致表无法提供业务,这个有替代方法吗?

mysql中的optimize 大表,会导致表无法提供业务,这个有替代方法吗?

比如我某个大表optimize 跑了50分钟,那么这个期间,无法提供业务,请问这个有替代方法吗?


比如pt-osc 之类的能实现吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
everything

可以。
innodb引擎的表执行optimize时,实际就是执行ALTER TABLE xxx FORCE来重建表从而更新统计数据和清理碎片。
可以使用pt-osc或gh-ost执行
ALTER TABLE xxx ENGINE=innodb来重建表,避免阻塞业务。
注意:使用pt-osc、gh-ost执行ddl语句时,会新建一个影子表后进行数据复制,影子表大小是<=原表的;因此需要至少预留大于目标表的磁盘空间。例如:目标表为200G,则至少需要预留200G。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏