mysqls清碎片


說明: mysql

每當MySQL從你的列表中刪除了一行內容,該段空間就會被留空。而在一段時間內的大量刪除操做,會使這種留空的空間變得比存儲列表內容所使用的空間更大。當MySQL對數據進行掃描時,它掃描的對象實際是列表的容量需求上限,也就是數據被寫入的區域中處於峯值位置的部分。若是進行新的插入操做,MySQL將嘗試利用這些留空的區域,但仍然沒法將其完全佔用。 sql


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; app

+--------------+-----------------------+-----------+--------+
| 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 | spa


data_free 是碎片空間 orm

清理碎片: 對象

optimize table ss.app_article;                      該方式只支持MyIsam引擎 io


INNODB使用 table

ALTER TABLE table.name ENGINE='InnoDB';             使用前最好備份 form

相關文章
相關標籤/搜索