广告
返回顶部
首页 > 资讯 > 数据库 >MySQL统计信息查询慢问题分析
  • 971
分享到

MySQL统计信息查询慢问题分析

2024-04-02 19:04:59 971人浏览 独家记忆
摘要

起因 在Mysql服务器运行mysqld_exporter后,发现数据库的中活跃连接数暴增,而且都是来自于mysqld_exporter的慢查询,语句如下: SELECT T

起因

Mysql服务器运行mysqld_exporter后,发现数据库的中活跃连接数暴增,而且都是来自于mysqld_exporter的慢查询,语句如下:

SELECT
            TABLE_SCHEMA,
            TABLE_NAME,
            TABLE_TYPE,
            ifnull(ENGINE, 'NONE') as ENGINE,
            ifnull(VERSioN, '0') as VERSION,
            ifnull(ROW_FORMAT, 'NONE') as ROW_FORMAT,
            ifnull(TABLE_ROWS, '0') as TABLE_ROWS,
            ifnull(DATA_LENGTH, '0') as DATA_LENGTH,
            ifnull(INDEX_LENGTH, '0') as INDEX_LENGTH,
            ifnull(DATA_FREE, '0') as DATA_FREE,
            ifnull(CREATE_OPTIONS, 'NONE') as CREATE_OPTIONS
          FROM information_schema.tables
          WHERE TABLE_SCHEMA = 'xxx';

分析

1.在该数据库执行该语句,执行时间非常慢

102 rows in set (6.35 sec)

2.在该数据库的从库执行,结果却完全不一样

102 rows in set (0.01 sec)

3.这个时候就可以确定应该跟MySQL统计信息有关。

查看MySQL统计信息相关介绍:https://blog.csdn.net/n88Lpo/article/details/79144495

4.查看主从数据库的参数,发现差异

##主库
mysql> show variables like 'innodb_stats_on_metadata';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_stats_on_metadata | ON    |
+--------------------------+-------+
1 row in set (0.00 sec)

##从库
mysql> show variables like 'innodb_stats_on_metadata';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_stats_on_metadata | OFF   |
+--------------------------+-------+
1 row in set (0.00 sec)

5.确定原因为每次查询时都会对统计信息进行更新。

查看MySQL官方文档 Https://dev.mysql.com/doc/refman/5.7/en/innodb-statistics-estimation.html

非持久化统计信息在以下情况会被自动更新
1 执行ANALYZE TABLE
2 innodb_stats_on_metadata=ON情况下,执SHOW TABLE STATUS, SHOW INDEX, 查询 INFORMATION_SCHEMA下的TABLES, STATISTICS
3 启用--auto-rehash功能情况下,使用mysql client登录
4 表第一次被打开
5 距上一次更新统计信息,表1/16的数据被修改

解决

修改参数innodb_stats_on_metadata

mysql> set global innodb_stats_on_metadata=0;
Query OK, 0 rows affected (0.00 sec)
您可能感兴趣的文档:

--结束END--

本文标题: MySQL统计信息查询慢问题分析

本文链接: https://www.lsjlt.com/news/35984.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作