Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Configuring Optimizer Statistics for 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 执行时间之间找到平衡。