目标
清理 mysql 碎片空间,优化实例性能;减少磁盘使用量,及备份空间容量。
方案策略
- MySQL 5.7 的 innodb 支持 online DDL 的整理碎片期间写锁会降级为读锁,几乎不影响 DML;myisam 整理碎片期间加写锁影响 DML。
- 为了安全期间,操作在备库执行。 执行计划
- 备库上清理碎片操作
SET GLOBAL super_read_only=0; # 临时关闭超级用户只读
SET SESSION sql_log_bin=OFF; # 本session操作不记入binlog
OPTIMIZE TABLE "表名"; # 重建表、重新整理索引信息
SET GLOBAL super_read_only=1;
QUIT;
- 主备切换
- 新备库上清理碎片