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中的文件大小来验证效果:

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

优质内容筛选与推荐>>
1、nginx之访问静态文件
2、添加百度地图导航到项目进行项目调试
3、修复Subsonic多表条件查询bug
4、项目管理软件之禅道
5、HIVE注册表的实现


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号