zoukankan      html  css  js  c++  java
  • 为什么要监控sql语句?如何监控?

    01 为什么要监控sql语句?

    ① 因为程序大了以后,sql语句有可能被多个地方调用 。你不能确认当前时间是不是只执行了你需要的那条语句 。

    ② 有的持久层框架采用linq的语法来写sql , 程序中不方便输出sq语句

    ③ 线上运行的程序,没有办法更改程序。但需要确认问题出错在哪里?执行了哪些sql语句。可以根据sql 语句来判断 出错的地方。

    02 如何在mysql中监控sql语句?

    默认mysql是不开启的sql语句监控的,当需要开启的时候 ,执行以下命令。

    SHOWVARIABLESLIKE"general_log%";

    -- off 是关闭,如果是on表示已经开启

    SETGLOBALgeneral_log ='ON';

    --开启日志监控。

    我是已经开启的状态 ,如果没有开启的时候 ,general_log 是显示的off .

    如下图所示 ,会看到日志默认保存的路径 位置

    C:ProgramDataMySQLMySQL Server 5.5Datahcb-PC.log

     
     

    接下来我们执行几条sql语句来查看

    执行sql

    SELECT* FROM `platform` UPDATE `platform` SET platform_type=2 WHERE id=1

    接下来我们去看下日志

     
     

    可以看到日志中包含了

    TimeId Command Argument

    分别对应时间 ,id, 命令, 参数

    参数指的就是执行的sql语句。

    03 如何让mysql中的sql语句显示在表中?

    在日志中查看不方便 ,如果让sql语句显示在数据库中的一个表中?

    (1)执行如下sql

    SET GLOBAL log_output ='TABLE';

    SELECT* FROM mysql.general_log ORDER BY event_time DESC

     
     

    (2)用processlist显示

    USE `information_schema`;

    SELECT* FROM PROCESSLIST WHERE info IS NOT NULL;

    具说这种方式可以实时显示,但是我的不知道为啥不能实时显示新的sql 先记录一下。

     
     



    作者:Java老王
    链接:https://www.jianshu.com/p/ed83bc2ffc6a
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 相关阅读:
    @@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的辨析
    Blue Jeans[poj3080]题解
    绿色通道题解
    后缀数组
    Power Strings[poj2406]题解
    KMP算法
    Life Forms[poj3294]题解
    STM32固件库文件编程结构思想的理解
    GPIO设置
    HTML_v2
  • 原文地址:https://www.cnblogs.com/sandea/p/11351905.html
Copyright © 2011-2022 走看看