匿名用户表中至少修改了1/16行时,统计信息会进行自动更新,这个逻辑的前提条件是啥?
是不是innodb_stats_auto_recalc=off,下,会执行1/16的逻辑
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户是不是innodb_stats_auto_recalc=off,下,会执行1/16的逻辑
innodb_stats_auto_recalc变量在默认情况下是启用的,它控制当表中超过10%的行发生变化时是否自动计算统计信息。还可以通过在创建或修改表时指定STATS_AUTO_RECALC子句,为单个表配置自动统计信息重新计算。
由于自动统计重新计算的异步性质(在后台进行),因此即使启用了innodb_stats_auto_recalc,在运行影响表10%以上的DML操作后,也可能不会立即重新计算统计信息。在某些情况下,统计信息的重新计算可能会延迟几秒钟。如果立即需要最新的统计信息,运行ANALYZE TABLE启动同步(前台)重新计算统计信息。
如果禁用了innodb_stats_auto_recalc,则可以在对索引列进行重大更改后执行ANALYZE TABLE语句来确保优化器统计信息的准确性。您还可以考虑将ANALYZE TABLE添加到加载数据后运行的设置脚本中,并在低活动时按计划运行ANALYZE TABLE。
评论
有用 1
墨值悬赏