200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数

mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数

时间:2024-07-15 02:42:21

相关推荐

mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数

本节介绍如何配置非持久性优化器统计信息。当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表被打开,并且打开表操作将导致统计信息被重新计算。

为了提高mysql 客户端的启动时间并更新统计信息,可以auto-rehash使用该 --disable-auto-rehash 选项将其关闭 。该auto-rehash 功能可为交互式用户自动完成数据库,表和列名称的名称命名。

首先打开一个表。

InnoDB 检测到自上次更新统计信息以来,表的1/16已被修改。

配置采样页数

MySQL查询优化器基于索引的相对选择性,使用有关键分布的估计 统计信息来选择执行计划 的索引。当更新优化器统计信息,从表中的每个索引它的样本的随机页面来估计 基数的指数。(这种技术被称为 随机潜水。) InnoDB

为了控制统计信息估计的质量(从而为查询优化器提供更好的信息),您可以使用参数更改采样页数 innodb_stats_transient_sample_pages。默认的采样页数是8,可能不足以产生准确的估计值,从而导致查询优化器的索引选择不正确。对于大型表和联接中使用的表,此技术尤其重要 。此类表的不必要的 全表扫描可能是一个严重的性能问题。有关调优此类查询的提示,请参见 第8.2.1.23节“避免全表扫描”。 innodb_stats_transient_sample_pages 是可以在运行时设置的全局参数。

的值 innodb_stats_transient_sample_pages 影响InnoDB 时所有表和索引 的索引采样innodb_stats_persistent=0。更改索引样本大小时,请注意以下潜在的重大影响:

较小的值(例如1或2)可能会导致基数估计不准确。

增大该 innodb_stats_transient_sample_pages 值可能需要更多的磁盘读取。大于8的值(例如100)会导致打开表或执行时间大大减慢SHOW TABLE STATUS。

优化器可能基于对索引选择性的不同估计来选择非常不同的查询计划。

无论哪种值对 innodb_stats_transient_sample_pages 系统最有效,请设置该选项并将其保留为该值。选择一个可以对数据库中的所有表进行合理准确估计的值,而无需过多的I / O。由于统计信息会在执行以外的其他时间自动重新计算 ANALYZE TABLE,因此增加索引样本大小,运行ANALYZE TABLE并再次减小样本大小没有意义 。

较小的表通常比较大的表需要更少的索引样本。如果您的数据库有很多大表,则考虑使用innodb_stats_transient_sample_pages 比大多数情况下较小的表更高的值 。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。