Skip to content

目标

清理 mysql 碎片空间,优化实例性能;减少磁盘使用量,及备份空间容量。

方案策略

  1. MySQL 5.7 的 innodb 支持 online DDL 的整理碎片期间写锁会降级为读锁,几乎不影响 DML;myisam 整理碎片期间加写锁影响 DML。
  2. 为了安全期间,操作在备库执行。 执行计划
  3. 备库上清理碎片操作
SET GLOBAL super_read_only=0;  # 临时关闭超级用户只读
SET SESSION sql_log_bin=OFF;  # 本session操作不记入binlog

OPTIMIZE TABLE "表名";  # 重建表、重新整理索引信息

SET GLOBAL super_read_only=1;
QUIT;
  1. 主备切换
  2. 新备库上清理碎片

waitingresult.com