MySQL Innodb data_free 清理


    當Innodb 表數據頻繁 update ,更新的數據會重新放置,舊數據會形成空洞,隨着時間的推移,空洞會越來越大。

可以通過 information_schema.table 表查看數據空洞過大的表

SQL如下:

SELECT table_schema,TABLE_NAME , concat(data_free/1024/1024,"M") FROM `information_schema`.tables WHERE data_free >8*1024*1024 AND ENGINE ='innodb'  ORDER BY data_free DESC;

數據空洞過大,會影響SQL的執行速度, 要徹底解決空洞問題需要從 update 語句入手,確定更新是否有意義, 此外通過  ALTER TABLE table_name ENGINE = Innodb; 回收表空間


免責聲明!

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



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