>데이터 베이스 >MySQL 튜토리얼 >mysqls清碎片操作_MySQL

mysqls清碎片操作_MySQL

WBOY
WBOY원래의
2016-06-01 13:36:511102검색

bitsCN.com

mysqls清碎片操作

 

说明:  

 

每当MySQL从你的列表中删除了一行内容,该段空间就会被留空。而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大。当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分。如果进行新的插入操作,MySQL将尝试利用这些留空的区域,但仍然无法将其彻底占用。    

 

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 是碎片空间

 

清理碎片:    

 

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

 

INNODB使用

 

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

 

bitsCN.com
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.