mysqls清碎片操作 說明: www.2cto.com 每當MySQL從你的列表中刪除了一行內容,該段空間就會被留空。而在一段時間內的大量刪除操作,會使這種留空的空間變得比存儲列表內容所使用的空間更大。當MySQL對數據進行掃描時,它掃描的對象實際是列表的容量需求上限,也就是數據被寫入的區域中處於峰值位置的部分。如果進行新的插入操作,MySQL將嘗試利用這些留空的區域,但仍然無法將其徹底占用。 www.2cto.com mysql> select table_schema, table_name, data_free, engine from information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free > 0; +--------------+-----------------------+-----------+--------+ | table_schema | table_name | data_free | engine | +--------------+-----------------------+-----------+--------+ | BK | comments | 9437184 | InnoDB | | BK | historypwd | 9437184 | InnoDB | | ss | app_admin_log | 434 | MyISAM | | ss | app_article | 4434 | MyISAM | |ss | app_article_category | 43420 | MyISAM | | ss | app_config | 3324 | MyISAM | | ss | app_convert_key | 1132 | MyISAM | data_free 是碎片空間 清理碎片: www.2cto.com optimize table ss.app_article; 該方式只支持MyIsam引擎 INNODB使用 ALTER TABLE table.name ENGINE='InnoDB'; 使用前最好備份