tidb_enable_pseudo_for_outdated_stats
从 v5.3.0 版本开始引入
- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 是否受 Hint SET_VAR 控制:是
- 类型:布尔型
- 默认值:
OFF
- 这个变量用来控制优化器在一张表上的统计信息过期时的行为。
- 统计信息过期的判断标准:最近一次对某张表执行
ANALYZE
获得统计信息后,该表数据被修改的行数大于该表总行数的 80%,便可判定该表的统计信息已过期。该比例可通过pseudo-estimate-ratio
配置参数调整。 - 默认情况下(即该变量值为
OFF
时),某张表上的统计信息过期后,优化器仍会使用该表上的统计信息。将该变量值设为ON
时,当统计信息过期后,优化器认为该表上除总行数以外的统计信息不再可靠,转而使用 pseudo 统计信息。 - 如果表数据修改较频繁,没有及时对表执行
ANALYZE
,但又希望执行计划保持稳定,推荐将该变量值设为OFF
。
如果设置为off 会不会影响统计sql的执行的准确性。本来快的变慢了