在 MySQL 8 中,统计信息收集策略主要涉及 InnoDB 引擎的自适应性统计信息和持久化统计信息。下面是关于这两个方面的一些信息:
自适应性统计信息(Adaptive Statistics):
- 自适应性统计信息是 MySQL 8 的一个新特性,它允许数据库根据运行时的查询模式动态地调整和优化查询执行计划。
- 当查询发生时,InnoDB 引擎会收集关于表数据分布、索引选择等方面的采样数据,并根据这些采样数据进行自适应调整。
- 自适应性统计信息可通过设置 innodb_stats_auto_recalc 参数控制,默认值为 ON。当启用时,MySQL 会自动触发统计信息的重新计算。
持久化统计信息(Persistent Statistics):
- 持久化统计信息允许数据库将最近收集到的统计信息保存到磁盘上,并在重启后仍然可用。
- 默认情况下,持久化统计信息是开启的,并且存储在 InnoDB 数据目录下的 sys schema 中的相关表中。
- 可以通过设置 innodb_stats_persistent 参数来控制持久化统计是否启用。默认值为 ON。
除了以上两个功能外,还有其他一些与统计信息相关的参数,例如 innodb_stats_sample_pages、innodb_stats_transient_sample_pages 等,它们可以用来调整统计信息收集的详细程度和性能开销。
总体而言,在 MySQL 8 中,自适应性统计信息和持久化统计信息可以帮助数据库更好地优化查询执行计划,并在重启后保持一致性。这些功能对于提高查询性能和稳定性非常有帮助。
内容由零声教学AI助手提供,问题来源于学员提问




