在重命名表之前收集表统计信息
作者: wangzihuacool创建于 2024年5月21日更新于 2026年8月5日
上周我遇到了一个极端的情况。在使用 gh-ost 修改表后,表的统计信息直到半小时后才被更新,导致了大量的慢查询。 这个问题的根本原因是,该表的统计事件在被放入异步队列等待由后台统计更新线程消费时丢失了。 这可能是一个极端的情况,但由于统计信息是在后台异步收集的,因此在 gh-ost 修改后,一段时间内统计信息未被更新是非常可能的,特别是当数据库中有大量表时。 我写了一个脚本,对 gh-ost 的表架构更改进行了数千次测试,经常会出现表的统计信息在 gh-ost 重命名表后 2-3 秒钟才被更新的情况。 我正在考虑是否可以在重命名表之前先收集统计信息,以避免在架构更改后统计信息未及时更新的问题。
内容来源: github/gh-ost