如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)

目的

使用 MySQL 提供的慢查询日志,找出记录的响应时间超过阈值的 SQL 语句。

使用方法

慢查询日志默认是关闭的。

可以通过 2 种方式开启:

  • 临时开启
  • 永久开启

临时开启是在内存中开启。重启 MySQL 服务会设置失效。

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(1)

永久开启是在配置文件中追加。

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(2)

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(3)

阈值设定方式有 2 种:

  • 临时设置
  • 永久设置

临时设置,设置完毕重新登陆起效。

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(4)

永久设置

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(5)

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(6)

代码实例

实例 1

目的:通过 sleep(n) 来模拟慢查询,并在慢查询日志中查看。

select sleep(4)

执行结果:

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(7)

实例 2

目的:通过 sleep(n) 来模拟慢查询,并使用 mysqldumpslow 工具在慢查询日志中查看。

select sleep(4)

执行结果:

获取返回记录最多的 3 个 SQL

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(8)

获取访问次数最多的 3 个 SQL

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(9)

按照时间排序,前 10 条包含 left join 查询语句的 SQL

如何解决慢sql(SQL高级SQL的常见问题-慢查询排查)(10)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页