文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  为 InnoDB 配置优化器统计信息

17.8.10 为 InnoDB 配置优化器统计信息

本节介绍如何为 InnoDB 表配置持久和非持久优化器统计信息。

持久优化器统计信息在服务器重启后会保留,从而提高 计划稳定性 并使查询性能更加一致。持久优化器统计信息还提供了这些额外优势,从而提供了控制和灵活性

  • 您可以使用 innodb_stats_auto_recalc 配置选项来控制在对表进行重大更改后是否自动更新统计信息。

  • 您可以使用 STATS_PERSISTENTSTATS_AUTO_RECALCSTATS_SAMPLE_PAGES 子句与 CREATE TABLEALTER TABLE 语句一起配置单个表的优化器统计信息。

  • 您可以在 mysql.innodb_table_statsmysql.innodb_index_stats 表中查询优化器统计信息数据。

  • 您可以查看 mysql.innodb_table_statsmysql.innodb_index_stats 表的 last_update 列以查看上次更新统计信息的时间。

  • 您可以手动修改 mysql.innodb_table_statsmysql.innodb_index_stats 表以强制执行特定的查询优化计划,或者在不修改数据库的情况下测试备用计划。

持久优化器统计信息功能默认启用 (innodb_stats_persistent=ON).

非持久优化器统计信息在每次服务器重启和某些其他操作后会清除,并在下次访问表时重新计算。因此,重新计算统计信息时可能会产生不同的估计值,导致执行计划选择不同,查询性能也可能有所不同。

本节还提供了有关估计 ANALYZE TABLE 复杂度的信息,这在尝试在准确的统计信息和 ANALYZE TABLE 执行时间之间取得平衡时可能很有用。