Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Configuring Optimizer Statistics for InnoDB

17.8.10 配置 InnoDB 优化器统计

本节描述了如何配置 InnoDB 表的持久和非持久优化器统计。

持久优化器统计将在服务器重启后保持不变,提供更好的计划稳定性和查询性能一致性。持久优化器统计还提供了控制和灵活性,带来了以下额外的好处:

  • 您可以使用innodb_stats_auto_recalc配置选项来控制统计信息是否自动更新,after substantial changes to a table。

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

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

  • 您可以查看last_update列中的mysql.innodb_table_statsmysql.innodb_index_stats表,以了解最后一次更新统计信息的时间。

  • 您可以手动修改mysql.innodb_table_statsmysql.innodb_index_stats表,以强制特定的查询优化计划或测试备选方案,而不需要更改数据库。

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

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

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