mysql碎片整理 optimize table tableName
mysql数据库中,如果经常进行删除操作,或者经常插入/更新非固定长度的字段,
会导致表空间中产生大量的wasted space, 就像文件系统中的文件碎片一样,需要定期对表进行碎片整理。
如果搜索引擎为MYISAM,可以采用optimize table tableName进行碎片整理。以下为测试数据:
emp为一个包含300W条数据的表:
执行删除100W条数据操作:
这时候我们再查看emp表占用空间,会发现DATA_LENGTH和INDEX_LENGTH并没有发生变化:
执行碎片整理命令之后,再查看表数据和索引大小,发现比原来少了大约1/3的空间,说明收集wasted-space成功:
PS:如果不喜欢命令行的话,也可以通过查看mysql目录下的data中的文件大小来验证效果:
顺便扫下盲,上面三个文件自上而下分别为:表结构,表数据,索引数据。
优质内容筛选与推荐>>