MySQL慢查询记录原理和内容解析

作者简介:高鹏,笔名八怪。《深入理解MySQL主从原理》图书作者,同时运营个人公众号“MySQL学习”,持续分享遇到的有趣case以及代码解析!

我的学习记录,可能有误请谅解,也提供了一些源码接口供有兴趣的朋友调试。源码版本:percona 5.7.14。本文并不准备说明如何开启记录慢查询,只是将一些重要的部分进行解析。如何记录慢查询可以自行参考官方文档:

  • 5.4.5 The Slow Query Log

本文使用了Percona 版本开启来了参数log_slow_verbosity,得到了更详细的慢查询信息。通常情况下信息没有这么多,但是一定是包含关系,本文也会使用Percona的参数解释说明一下这个参数的含义。

一、慢查询中的时间

实际上慢查询中的时间就是时钟时间,是通过操作系统的命令获得的时间,如下是Linux中获取时间的方式

  while (gettimeofday(&t, NULL) != 0)     {}     newtime= (ulonglong)t.tv_sec * 1000000 + t.tv_usec;     return newtime;