mysql表碎片整理


第一步:查看表信息

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM