您的位置:首页 > 数据库 > SQL

开启MYSQL慢查询日志,监控有效率问题的SQL

2018-11-22 21:04 344 查看
  • 操作步骤
      首先使用用户登录linux客户端,执行命令 mysql -u mjb -p, mjb是数据库用户名,系统会提示输入密码,输入密码回车,登录成功
    1. 输入命令show variables like 'slow_query_log', 页面会显示是否开启了慢查询日志,slow_query_log =ON,代表已经开启
    2. 如果未开启,则需要执行该命令set global slow_query_log=on;
  • 通过设置log_queries_not_using_indexes开启为使用索引的监控
      输入命令show variables like 'log_queries_not_using_indexes';
    • log_queries_not_using_indexes=OFF,代表未开启,需要执行该命令
    • set global log_queries_not_using_indexes=on;
      -
  • 通过long_query_time设置监控阀值,也就是超过多少秒就记录,单位是秒,此处设置为0.1也就是100毫秒
      输入命令show variables like 'long_query_time';
    • 系统设置的为1秒,如果需要修改为0.1秒,则需要执行如下命令
    • set global long_query_time=0.1;
  • 通过以上设计,基本上可以开始优化工作了,set global 只是全局session生效,重启后失效,如果需要以上配置永久生效,需要在mysql.cnf中配置
      [mysqld]
      slow_query_log = 1
      log_queries_not_using_indexes =1
      long_query_time = 0.1
      slow_query_log_file = /apps/logs/mysql/slow3306.log
      如果是linux,就通过以下命令或service等其他方式重启
      启动:/etc/init.d/mysqld(mysql) start
      停止:/etc/init.d/mysqld(mysql) stop
      重启:/etc/init.d/mysqld(mysql) restart
      最后查看慢查询日志所在的位置,通过查看slow_query_log_file
    • 执行命令show variables like 'slow_query_log_file' \G
    • 显示的日志记录在/apps/logs/mysql/slow3306.log目录
    • 测试
    • 记录成功
    字段名 含义
    Time int类型时间戳 加 时间 180913 10:39:57
    User@Host 执行SQL的主机信息 mjb[mjb] @ localhost []
    Thread_id 线程id 5271182
    Query_time 执行时间 2.000219
    Lock_time 锁定时间 0.000000
    Rows_sent 返回记录数 1
    Rows_examined 扫描行数 0
    SET timestamp SQL执行用时 1536806397
    select sleep(2) SQL语句 select sleep(2);
    • 设置成功,性能测试完成,可以把监控到的慢SQL日志文件进行查看,看是哪些SQL语句需要进行优化
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签:  性能 数据库 监控