本篇文章小编给大家分享一下mysql语句进行监控方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
快速阅读
为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控。
我们知道sql server 中有个工具叫sql profile ,可以实时监控sql server中 执行的sql 语句,以方便调试bug 或者确认最终生成的sql语句
为什么要监控sql语句?
因为程序大了以后,sql语句有可能被多个地方调用 。你不能确认当前时间是不是只执行了你需要的那条语句 。
有的持久层框架采用linq的语法来写sql , 程序中不方便输出sq语句
线上运行的程序,没有办法更改程序。但需要确认问题出错在哪里?执行了哪些sql语句。可以根据sql 语句来判断 出错的地方。
如何在mysql中监控sql语句?
默认mysql是不开启的sql语句监控的,当需要开启的时候 ,执行以下命令。
SHOW VARIABLES LIKE "general_log%"; -- off 是关闭,如果是on表示已经开启 SET GLOBAL general_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
接下来我们去看下日志
可以看到日志中包含了
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
用processlist显示
USE `information_schema`; SELECT * FROM PROCESSLIST WHERE info IS NOT NULL;
具说这种方式可以实时显示,但是我的不知道为啥不能实时显示新的sql 先记录一下。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔