妖妖っ凌
重回博客园,每天积累一点点。。

导航

 

mysql数据库中,如果经常进行删除操作,或者经常插入/更新非固定长度的字段,
会导致表空间中产生大量的wasted space, 就像文件系统中的文件碎片一样,需要定期对表进行碎片整理。

如果搜索引擎为MYISAM,可以采用optimize table tableName进行碎片整理。以下为测试数据:

emp为一个包含300W条数据的表:

执行删除100W条数据操作:

这时候我们再查看emp表占用空间,会发现DATA_LENGTH和INDEX_LENGTH并没有发生变化:

执行碎片整理命令之后,再查看表数据和索引大小,发现比原来少了大约1/3的空间,说明收集wasted-space成功:

PS:如果不喜欢命令行的话,也可以通过查看mysql目录下的data中的文件大小来验证效果:

顺便扫下盲,上面三个文件自上而下分别为:表结构,表数据,索引数据。

 

 

 

posted on 2013-08-12 10:24  妖妖っ凌  阅读(1096)  评论(0)    收藏  举报