文档章节

MySQL 微秒慢查询补丁

叶金荣
 叶金荣
发布于 2017/04/13 13:22
字数 901
阅读 5
收藏 0
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
原文出自: The new cool MySQL patch has landed! Check your queries performance!,本文做只部分翻译。
MySQL微秒慢查询(microtime slow query)补丁包具有以下特色:
  • 识别连接

    每个慢查询结果中都记录了是哪个连接线程引起的,如下:
    # Thread_id: 571
  • 微秒计数

    可以记录执行时间在1秒一下的慢查询,选项 long_query_time 的单位现在是微秒,而不是秒,例如设置成300000表示0.3秒。
    # Query_time: 0.021752  Lock_time: 0.000016  Rows_sent: 1  Rows_examined: 103
  • 记录复制产生的慢查询

    通常情况下,MySQL并不记录复制产生的慢查询,使用该补丁后,只需要打开选项 --log-slow-slave-statements 解决这一问题。
  • 详细的查询执行计划

    每次查询的执行计划都不一样。可能使用索引扫描,或者全表扫描,或者使用临时表。通常这些信息也能从 EXPLAIN 结果中得到。该补丁会在日志中显示了查询中最重要的几个方面,如下:
    1.  # QC_Hit: No  Full_scan: No  Full_join: No  Tmp_table: Yes  Tmp_table_on_disk: No
    2.  # Filesort: Yes  Filesort_on_disk: No  Merge_passes: 0
    QC_Hit 表示本次查询是否命中了查询缓存( Query Cache)。如果显示的是 0,则表示该查询并没有真正的执行。
    如果 Full_scan 的结果为 Yes 表示该查询比较糟糕,因为需要扫描全表。
    Full_join 表示联合查询时没有使用索引。
    如果需要创建临时表,则 Tmp_table 的结果为 Yes;如果需要创建基于磁盘的临时表而不是基于内存的,则 Disk_tmp_table 的值为 Yes
    如果用到 filesort 算法,则 Filesort 的值为 Yes, Filesort_on_disk 则表示排序是基于临时文件进行的。
  • InnoDB 的使用

    最后一部分是InnoDB使用结果的统计。MySQL现在允许运行 SHOW SESSION STATUS 来查看每个线程的统计信息,但是这并不包括InnoDB的使用,因为InnoDB部分而总是显示全局统计的结果。该补丁允许你查看每次查询的InnoDB资源使用情况。
    #   InnoDB_IO_r_ops: 3  InnoDB_IO_r_bytes: 49152  InnoDB_IO_r_wait: 0.018690
    #   InnoDB_rec_lock_wait: 0.000000  InnoDB_queue_wait: 0.000000
    #   InnoDB_pages_distinct: 7
    InnoDB_IO_r_ops 统计计划需要读取的页数。实际数量可能不太一样,虽然它可以异步完成,不幸的是并没有好办法来衡量它。它的单位是字节(bytes)。
    InnoDB_IO_r_wait 中可以看到 InnoDB 从存储引擎中读取数据锁等待的时间(单位是秒)。
    InnoDB_rec_lock_wait 表示等待行锁所需时间(单位是秒)。
    InnoDB_queue_wait 表示等待进入 InnoDB 队列或在队列中等待执行所消耗的时间(单位是秒)。
    InnoDB_pages_distinct 显示了读取的独立页个数。这只是基于用小哈希数组表示的整个缓冲池的近似值,因为有可能需要用很大的内存来映射所有页。同一个查询却产生不准确的读取页数量增长可能是发生了哈希冲撞的缘故。
    如果查询中没有用到InnoDB,则相关日志行变成下面这样,其他的不变:
    # No InnoDB statistics available for this query
注意:尽管该补丁已经做过压力测试,并且还在实际环境中使用过,但仍然建议不要在非常重要的系统中使用,万一出了问题,人家可不负责啊 :)
本文出自 “MySQL中文网”博客 http://www.imysql.cn/

本文出自 “老叶茶馆” 博客,转载请与作者联系!

本文转载自:http://imysql.blog.51cto.com/1540006/308840

叶金荣

叶金荣

粉丝 95
博文 259
码字总数 0
作品 0
福州
数据库管理员
私信 提问
Redis 性能问题排查:slowlog 和排队延时

一、Redis Slowlog介绍 [Redis Slowlog]是排查性能问题关键监控指标。它是记录Redis queries运行时间超时特定阀值的系统。 这类慢查询命令被保存到Redis服务器的一个定长队列,最多保存slowl...

IT--小哥
2018/10/08
1K
0
Redis 如何分析慢查询操作?

什么是慢查询 和mysql的慢SQL日志分析一样,redis也有类似的功能,来帮助定位一些慢查询操作。 Redis slowlog是Redis用来记录查询执行时间的日志系统。 查询执行时间指的是不包括像客户端响应...

Java技术栈
2018/09/12
0
0
redis cluster (2) 相关命令参考及慢查询

实例关闭命令 redid-cli shutdown 说明:关闭时强制 bgsave 所以需要一些时间 注:在start时,需要先加载数据到内存,数据加载完毕之后 redis 才会listen 端口 集群相关命令 1、CLUSTER INF...

meteor_hy
2017/01/18
0
0
Navicat使用教程(三):使用MySQL日志(第3部分)——慢速日志

下载Navicat for MySQL最新版本 Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。使用Navicat for MySQL可以同时连接到 MySQL 和 MariaDB。Navicat for MySQL提供了强...

电池盒
2018/12/17
40
0
MySQL慢日志查询全解析:从参数、配置到分析工具

一、慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过longquerytime值的SQL,则会被记录到慢查询日志中。longq...

潇湘隐者
2016/09/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

html2canvas 生成的图片变模糊解决方案

需求: 背景图片和二维码还有用户微信头像生成一张图片,可供用户下载。打开页面的时候就是一张图可以保存,html2canvas插件即可实现效果,效果是实现了,但是很郁闷,图片模糊了。。。。 为...

前端老手
9分钟前
2
0
语音翻译器在线翻译语音

对于英语不好的朋友来说,如果出国旅游,多多少少都会使用到翻译软件。通过在线翻译的方式,方便彼此的沟通交流。那么,有朋友就在问哪个英语翻译软件最准确?下面就来和大家一起分享下这个简...

401恶户
10分钟前
2
0
国内25家滤波器公司排名

国内做滤波器的企业都有哪些?哪些企业做滤波器是比较知名的?国内滤波器企业排名如何?以下是解优人才网小编给大家的分享,国内前25家做滤波器的企业详细信息。 1、武汉凡谷电子技术股份有限...

猎头悬赏平台
15分钟前
4
0
即时配送,不再只是巨头的战场

9月4日,第十届中国电子商务物流大会暨2019中国同城即时物流行业峰会于杭州召开。会上出现了蜂鸟即配、达达-京东到家、美团配送、点我达、闪送等一众即时配送行业中的知名企业的身影。 在艾媒...

喵二狸
15分钟前
3
0
Moto G 2014 LTE Root

[TOC] 下载moto专用mfastboot mfastboot-v2.zip 下载对应设备的twrp 我的是这个版本 Moto G 2014 LTE thea 刷入twrp # 1. 开启USE调试# 2. 允许OEM解锁# 3. 查看设备adb devices# 4. 进f...

yeahlife
19分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部