【发布时间】:2016-10-06 04:03:23
【问题描述】:
我有一个表女巫是我系统的核心,显示给我的客户的所有结果都存储在那里。它增长得相当快,所以我应该每 3 小时删除一次早于 X 的记录以提高性能。
只删除这些记录就足够了吗,还是应该在删除后运行Optimize table?
我正在考虑每 3 小时删除一次,并且每天晚上只运行一次优化,但我不确定仅删除是否足以提高性能。
【问题讨论】:
-
如果你有一个自动增量 id 作为主键,我怀疑你会看到任何差异(它可能取决于你拥有和使用的其他索引)。你当然可以只测试它,因为 5.7.4
optimize table不会再锁定,它也不会造成太大的伤害(它当然仍然会使用 i/o),所以你可以双向使用。但我想一般来说我只会在正常的夜间维护期间这样做(当然不知道你的具体设置)。 -
我会为此使用event。将事件视为计划的重复存储过程,没有 cron 的麻烦。他们已经确定并忘记了。因此,忘记他们执行是不利的。时不时地提醒自己:“哦,我忘记了,我有活动这样做。”
标签: mysql performance optimization