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