• mysql 慢查询日志 (mysqldumpslow坑还没填)


    MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过long_query_time值的SQL语句(秒为单位)。

    默认情况下MySql数据库没有开启慢查询日志,

    mysql> show variables like '%slow_query_log%';
    +---------------------+---------------------------------------------------------------------+
    | Variable_name       | Value                                                               |
    +---------------------+---------------------------------------------------------------------+
    | slow_query_log      | OFF                                                                 |
    | slow_query_log_file | C:ProgramDataMySQLMySQL Server 5.5DataLAPTOP-6UTRE719-slow.log |
    +---------------------+---------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

      开启慢查询日志

    mysql> set global slow_query_log = 1;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show variables like '%slow_query_log%';
    +---------------------+---------------------------------------------------------------------+
    | Variable_name       | Value                                                               |
    +---------------------+---------------------------------------------------------------------+
    | slow_query_log      | ON                                                                  |
    | slow_query_log_file | C:ProgramDataMySQLMySQL Server 5.5DataLAPTOP-6UTRE719-slow.log |
    +---------------------+---------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

     其中 

    1.slow_query_log_file 项的值是保存慢查询日志的位置,默认缺省文件名为 host_name-slow.log

    2.这个设置的值只是环境变量,重启服务后就失效了,如果想要永久配置,要在主配置文件中修改(my.cnf中的[mysqld]下)。

    slow_query_log = 1
    slow_query_log_file = xxx.xxx
    

     关于long_query_time阈值 查询和设置与上面语法一样

    mysql> show variables like 'long_query_time%';
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.00 sec)
    
    mysql> set global long_query_time=5;
    Query OK, 0 rows affected (0.00 sec)
    

      当前会话看不到,重新开一个终端即可查看。(也是临时环境变量)

    来一些耗时操作。。。select sleep(6);

    可以在文件里查看耗时操作的具体内容

    也可以这样子

    mysql> show global status like '%Slow_queries%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Slow_queries  | 1     |
    +---------------+-------+
    1 row in set (0.27 sec)
    

      查看耗时sql的统计数量。

     mysqldumpslow

    --mysqldumpslow是-shell中用来方便查看慢查询日志的指令

    得到返回记录集最多的10个sql

    mysqldumpslow -s r -t 10 <慢查询日志路径>

    得到访问次数最多的10个sql

    mysqldumpslow -s c -t 10 <慢查询日志路径>

    得到按时间顺序排序的前10条里面有 xxx 串的查询语句

    mysqldumpslow -s t -t 10 -g "xxx" <慢查询日志路径>

    具体指令 mysqldumpslow --help 查询帮助文档

    以后再补..

  • 相关阅读:
    javascript 数组Array对象
    使div浮动层显示在Select组件上面
    CSS中expression使用简介
    Error: Error #2176: 某些动作(如显示弹出窗口的动作)只能通过用户交互来调用
    用.Net处理xmlHttp发送异步请求
    使用反射动态创建对象及调用对象方法
    Asp.net实现在线截图(大图截取为小图)
    一个webproxy代理类
    Asp.net如何截屏
    用 ASP.NET 做网站截图(代码示例)
  • 原文地址:https://www.cnblogs.com/chafanbusi/p/10652244.html
Copyright © 2020-2023  润新知