查找需要优化的sql语句

慢查询日志:

是一种mysql提供的日志,记录所有执行时间超过某个时间界限的sql的语句。这个时间界限,我们可以指定。在mysql中默认没有开启慢查询,即使开启了,只会记录执行的sql语句超过10秒的语句。

如何启动慢查询日志:

  • 方式一: 临时启动慢查询记录日志

    注意:先把mysql关闭后,再执行以上指令启动。

    进入cmd开始启动执行:mysqld.exe --safe-mode --slow-query-log

    通过慢查询日志定位执行效率较低的SQL语句。慢查询日志记录了所有执行时间超过long_query_time所设置的SQL语句。

    在默认情况下,慢查询日志是存储到data目录下面的。根据配置文件里面的配置,找到data的存储路径。

    可以通过命令查看慢查询日志的时间: show variables like 'long_query_time';

    修改慢查询日志时间:set long_query_time=1;

    结论:创建完索引后,索引文件会变大,添加索引会明显的提高查询速度。

  • 方式二:通过修改配置文件,添加如下语句

    # 低版本mysql
    log-slow-queries="d:/slow-log"
    long_query_time=1
    
    # 高版本mysql
    slow-query-log=1
    slow_query_log_file="d:/slow-log"
    long_query_time=1
    

**精确记录查询时间: **

使用mysql提供profile机制完成。

profile记录每次执行的具体时间,精确的时间到小数点8位。

  • 开启profile机制

    执行需要分析的sql语句(自动记录该sql的时间)

    set profiling = 1;
    
  • 查看记录sql语句的执行时间:

    show profiles;
    

    注意:不需要分析时,最好将其关闭。

  • 关闭profile机制

    set profiling=0;
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章