我已经看到许多不同的时间表用于优化MySQL中的表:从删除后立即到每天一次,从不到。我经常设置一个cron作业,每晚运行以优化所有表格。
您使用哪些因素来确定表的优化频率?
答案 0 :(得分:2)
此MySQL themselves的引用也很好。
在大多数设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量更新,也不一定需要每周或每月多次执行此操作,并且只能在某些表上执行此操作。
基于表格优化的this article。
这样可以对表进行碎片整理,并将磁盘上的表大小减小到105MB。它还对查询性能产生非常积极的影响,将选择查询响应时间从0.63减少到0.39秒。注:关闭了mysql查询缓存以演示。
这是"MySQL administrators guide"
的另一个引用OPTIMIZE TABLE执行表修复和密钥分析,并对索引树进行排序,以便密钥查找更快。
仅仅因为这句话永远不会被告知。
过早优化是万恶之源
你应该做的是先测量,做一个优化,然后测量。然后在第二天做同样的事情,如果性能的提高是最小的,那么你应该在之后做同样的事情,看看你是否在性能上有了很大的提升。
答案 1 :(得分:0)
与运行优化表相比,其他因素最有可能对查询时间贡献更多。
如果性能是一个问题(并且只有),那么您应该通过优化实际瓶颈来使用数据库启动来分析应用程序。