永久性数据收集:将表及表索引的统计数据存放在innodb_index_stats和innodb_table_stats两个表中。
定时更新统计数据:
自动重新计算统计数据(innodb_stats_auto_recalc)当表中变动记录数量超过了表大小的10%,则服务器会异步重新统计数据。
手动update更新innodb_index_stats和innodb_table_stats表统计的n_rows数据,再通过FLUSH TABLE single_table就可以更新表的统计数据。
- innodb_stats_persistent控制着使用永久性统计数据还是非永久性统计数据;
- innodb_stats_persistent_sample_pages控制着永久性统计数据的采样页面数量;
- innodb_stats_transient_sample_pages控制着非永久性统计数据的采样页面数量;
- innodb_stats_auto_recalc控制着是否自动重新计算统计数据。
innodb_stats_method决定着在统计某个索引列不重复值的数量时如何对待NULL值。