1. 什么是慢查询?

      1. 对于sql语句的执行,通常有一个查询时间的阈值,mysql默认阈值是10s。因此,超过这个阈值的sql语句,我们定义为慢查询。
    2. 慢查询配置和查看

      1. 执行语句 show variables like ‘%slow_query_log%’;slow_query_log_file是慢查询日志 输出方式为file时的文件输出目录。slow_query_log的值为on,说明慢查询日志已经开启。image.png

        1. 如果没有开启,执行语句 set global slow_query_log=1;
      2. 执行语句 show variables like ‘long_query_time%’; 查看慢查询时间,从图片可以看到此时 慢查询的查询时间阈值为10s。image.png

      3. 执行语句 show variables like ‘%log_output%’;查看文件地址的输出方式,有file 和table俩个值。image.png
        1. 如果是file的话,需要到指定的slow_query_log_file 路径查看慢查询日志。image.png
        2. 如果是table的话,执行sql语句select * from mysql.slow_log 查看慢查询日志;image.png
    3. 慢查询分析
      1. 查看索引是否失效
        1. 使用explain工具查看执行计划,判断是否使用上了索引。image.png