本节介绍如何配置非持久性优化器统计信息。当innodb_stats_persistent=OFF或使用创建或更改单个表时,Optimizer统计信息不会保留在磁盘 上 STATS_PERSISTENT=0。相反,统计信息存储在内存中,并且在服务器关闭时会丢失。统计信息还可以通过某些操作在特定条件下定期更新。
默认情况下,优化器统计信息会保留在磁盘上,并由innodb_stats_persistent 配置选项启用。有关持久性优化器统计信息,请参见第15.8.10.1节“配置持久性优化器统计参数”。
优化器统计信息更新
非持久性优化器统计信息将在以下情况下更新:
运行中ANALYZE TABLE。
运行SHOW TABLE STATUS, SHOW INDEX或 在 启用了该选项的情况下查询 INFORMATION_SCHEMA.TABLES或 INFORMATION_SCHEMA.STATISTICS表 innodb_stats_on_metadata。
的默认设置 innodb_stats_on_metadata是 OFF。启用 innodb_stats_on_metadata 可能会降低具有大量表或索引的架构的访问速度,并降低涉及InnoDB 表的查询的执行计划的稳定性。 innodb_stats_on_metadata使用一条SET语句全局配置 。
SET GLOBAL innodb_stats_on_metadata=ON
注意
innodb_stats_on_metadata 仅当优化器统计信息配置为非持久性( innodb_stats_persistent 禁用时)时才适用 。
使用启用的选项 启动mysql客户端 --auto-rehash,这是默认设置。该 auto-rehash选项将导致所有 InnoDB表被打开,并且打开表操作