十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
MySQL5.6版本后提供了对SQL的跟踪工具trace,通过使用trace可以让我们明白optimizer如何选择执行计划的。
创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、成都响应式网站建设、程序开发、网站优化、微网站、微信小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计制作、成都网站设计、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。
使用过程:
配置文件开启二进制日志,log-bin[=dir/[filename]] 或者set sql_log_bin=1开启,set sql_log_bin=0关闭。进入二进制文件目录,用mysqlbinlog命令查看二进制日志文件。同样的,开启通用日志文件也可以追踪用户操作记录。
这个可以借助工具了,如mysql抓包工具 MySQL Sniffer
效果就是,访问数据库的来源ip,访问的库,表,sql这样的,如下:
在MsSQL Server中我们要追踪SQL,只需要开启MS SQL中的事件追踪器(SQL Server Profiler)就可以了,而且设置非常的方便。但在MySQL中要实现类似功能需要做些处理,而且操作也比较繁琐 —— 鼠标党,被MS毁了。
要启用MySQL的Sql Trace,需要启用查询日志功能,各个版本操作不一,下面简要说明:
在MySql5.1.12之前
在my点吸烟 f或者my.ini中的[mysqld]节下配置:
log = /path/for/file/live-query.log
而这些所有的参数都是可以在线设置的,也就是说,如果你不想因为修改设置而重启MySql的话,那么在线设置应该是个更好的选择,在进入MySql的操作中:
--这里按照最新版本来设置
--查询关于log的设置
SHOW VARIABLES LIKE 'general_log%';
/×
返回结果类似:
+------------------+------------------------------------------------------------
------------------+
| Variable_name | Value
|
+------------------+------------------------------------------------------------
------------------+
| general_log | OFF
|
| general_log_file | dev-mc.log
|
+------------------+------------------------------------------------------------
------------------+
2 rows in set (0.00 sec)
注意,general_log_file 的默认值是'机器名'.log
*/
-- 开启日志
SET GLOBAL general_log ='ON';
-- 设置日志的文件路径:本例在Windows下
SET GLOBAL general_log_file='D:/MySql/live-query.log';
-- 设置完之后,就已经生效了