快速阅读

为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控。

我们知道sql server 中有个工具叫sql profile ,可以实时监控sql server中 执行的sql 语句,以方便调试bug 或者确认最终生成的sql语句

为什么要监控sql语句?

  1. 因为程序大了以后,sql语句有可能被多个地方调用 。你不能确认当前时间是不是只执行了你需要的那条语句 。
  2. 有的持久层框架采用linq的语法来写sql , 程序中不方便输出sq语句
  3. 线上运行的程序,没有办法更改程序。但需要确认问题出错在哪里?执行了哪些sql语句。可以根据sql 语句来判断 出错的地方。

如何在mysql中监控sql语句?

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

SHOW VARIABLES LIKE "general_log%"; -- off 是关闭,如果是on表示已经开启
SET GLOBAL general_log = 'ON'; --开启日志监控。

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

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

C:\ProgramData\MySQL\MySQL Server 5.5\Data\hcb-PC.log

关于对mysql语句进行监控的方法详解

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

执行sql

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

接下来我们去看下日志

关于对mysql语句进行监控的方法详解

可以看到日志中包含了

Time                 Id Command    Argument

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

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

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

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

执行如下sql

SET GLOBAL log_output = 'TABLE'; 
SELECT * FROM mysql.general_log ORDER BY event_time DESC

关于对mysql语句进行监控的方法详解

用processlist显示

USE `information_schema`;
SELECT * FROM PROCESSLIST WHERE info IS NOT NULL;

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

关于对mysql语句进行监控的方法详解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?