第一步:查看表信息
use 庫名
show table status like '表名';
或
show table status like '表名' \G
建議加上參數\G優化展示,不加此參數,沒法直視查詢結果。
第二步:計算碎片

公式:
數據總大小 = data_length + index_length
實際表空間文件大小 = rows X avg_row_length
碎片大小 = (數據總大小 — 實際表空間文件大小 )/1024/1024 = xxx MB
第三步:碎片清理
方法①: 簡單無腦
alter table table_name engine = innodb
然后備份原表數據,刪掉,再導入
方法②:使用percona-toolkit工具集
1.捕獲線上運行慢的sql
使用pt-query-digest
2.online DDL
./pt-online-schema-change --user=root --password = root --host=localhost --alter="ENGINE = Innodb" D=數據庫名,t=表名 --execute
