zoukankan      html  css  js  c++  java
  • mysql配置调优-开启慢查询日志-slow_query_log

    工作中,会遇到需要查看mysql的top 20 慢sql,逐个进行优化,加上必要的索引这种需求,这时就需要开启数据库的慢查询日志的功能

    1.查询当前慢查询日志的状态

    # 默认为关闭状态

    mysql
    ----------------------------
    show variables like "%slow_query_log%";
    ----------------------------

    # 实例演示:

    mysql> show variables like "%slow_query_log%";
    +---------------------+-------------------------------------------+
    | Variable_name       | Value                                     |
    +---------------------+-------------------------------------------+
    | slow_query_log      | OFF                                       |
    | slow_query_log_file | /usr/local/mysql/data/1055-mysql-slow.log |
    +---------------------+-------------------------------------------+
    2 rows in set (0.00 sec)

    # 可以看到,慢查询日志的状态和默认的慢查询日志的文件

    [root@1055-mysql ~]# cd /usr/local/mysql/data/
    [root@1055-mysql data]# ll
    总用量 568888
    -rw-r----- 1 mysql root       5888 11月  7 2016 1055-mysql.err
    -rw-rw---- 1 mysql mysql 56 11月 7 2016 auto.cnf -rw-rw---- 1 mysql mysql 281018368 12月 4 11:15 ibdata1 -rw-rw---- 1 mysql mysql 50331648 12月 4 11:15 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 12月 12 2017 ib_logfile1 drwx------ 2 mysql mysql 4096 11月 7 2016 mysql -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000123 -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000124 -rw-rw---- 1 mysql mysql 78 12月 4 11:15 mysql-bin.index drwx------ 2 mysql mysql 4096 11月 7 2016 performance_schema

    # 但实际在该位置并未生成慢查询日志的文件

    2.手动开启慢查询日志

    # 登陆mysql进行设置

    mysql
    ----------------------------
    set global slow_query_log=on;
    ----------------------------

    # 实例演示:

    mysql> set global slow_query_log=on;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> show variables like "%slow_query_log%";
    +---------------------+-------------------------------------------+
    | Variable_name       | Value                                     |
    +---------------------+-------------------------------------------+
    | slow_query_log      | ON                                        |
    | slow_query_log_file | /usr/local/mysql/data/1055-mysql-slow.log |
    +---------------------+-------------------------------------------+
    2 rows in set (0.00 sec)

    # 可以看到,慢查询日志的状态更改了

    [root@1055-mysql data]# ll
    总用量 568892
    -rw-r----- 1 mysql root       5888 11月  7 2016 1055-mysql.err
    -rw-rw---- 1 mysql mysql       175 1月  22 18:23 1055-mysql-slow.log
    -rw-rw---- 1 mysql mysql 56 11月 7 2016 auto.cnf -rw-rw---- 1 mysql mysql 281018368 12月 4 11:15 ibdata1 -rw-rw---- 1 mysql mysql 50331648 12月 4 11:15 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 12月 12 2017 ib_logfile1 drwx------ 2 mysql mysql 4096 11月 7 2016 mysql -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000123 -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000124 -rw-rw---- 1 mysql mysql 78 12月 4 11:15 mysql-bin.index drwx------ 2 mysql mysql 4096 11月 7 2016 performance_schema

    # 检查文件发现自动生成了慢查询日志的文件

    3.修改mysql配置文件保证永久生效

    # 由于慢查询日志记录的信息比较多,会影响mysql的性能,所以生产环境不建议长期开启

    vim /etc/my.cnf
    -----------------------------------
    slow_query_log=1
    slow_query_log_file=/usr/local/mysql/data/slow-query.log
    -----------------------------------

    # 其他可用的配置参数

    long_query_time=1           # 慢查询日志的时间定义(秒),默认为10秒,多久就算慢查询的日志
    log_queries_not_using_indexes=1    # 将所有没有使用带索引的查询语句全部写到慢查询日志中

    # 修改完配置重启即可生效

    ==== 完毕,呵呵呵呵 ==== 

  • 相关阅读:
    第一周2016/9/16
    团队项目计划会议
    电梯演讲视频
    团队项目成员与题目(本地地铁查询app)
    地铁查询相关问题汇总
    延长zencart1.5.x后台的15分钟登录时间和取消90天强制更换密码
    zencart1.5.x版管理员密码90天到期后台进入不了的解决办法
    通过SSH解压缩.tar.gz、.gz、.zip文件的方法
    html标签被div嵌套页面字体变大的解决办法
    zencart批量插入TEXT文本属性attributes
  • 原文地址:https://www.cnblogs.com/tssc/p/10305470.html
Copyright © 2011-2022 走看看