MySQL · 内核分析 · InnoDB 的统计信息

前言 MySQL 的InnoDB引擎会维护着用户表每个索引的统计信息, 来帮助查询优化器选择最优的执行计划,详细的来说, key的分布情况能决定多表join的顺序, 也能够决定查询使用哪一个索引。这些统计信息可以由专门的后台线程刷新,也可以由用户也可以显示的调用Analyze table的命令来刷新统计信息, 本文基于最新的MySQL 8.0来具体分析一下刷新统计信息的具体实现。 统计信息收集触发以及查看 MySQL有多种方法会触发统计信息的收集,显示的最典型就是Ana