跟踪监控MYSQL执行的sql语句的方法:
linux平台
为了做好配合开发做性能和功能测试,方便监控正在执行的sql语句,
可以在/etc/mysqld中添加如下:
log =/usr/local/mysql/var21005/mysql.log
就可以使用:
tail -f mysql.log
来监控了 www.fly810.com
如果需要监控慢查询可以添加如下内容:
log-slow-queries = /usr/local/mysql/var21005/slowquery.log
long_query_time = 1
windows平台
一windows平台下为例:
修改my.ini,在mysqld下添加log一行,
[mysqld]
log = "D:/tmp/mysql_log/mysql_log.sql"
然后,重新启动mysql,就可以实时看到myql服务器当前正在执行的语句了。
有时我们使用了PHP框架,然后使用现成的ORM,省去了写SQL的麻烦,但又想看看到底生成了哪些SQL;或者下载了wordpress或druapl,想看看人家的SQL是怎么写的,这时如果能够监视MySQL的一举一动就好了,也不难,只需要稍微配置一下,再加上一个工具就行了。
首先,打开%MySQLDir%my.ini(linux下是my.cnf)加上这么一句
# 指定log的位置
log=C:/AppServ/MySQL/mysql.log
# 或者linux下 log=/var/log/mysql/mysql.log
|
这样,MySQL就会把所有操作记录都写在mysql.log这个文件里。接下来可以先清空这个文件,然后运行wordpress,再打开这个文件,就会看到所有执行的SQL了,不过这个有点麻烦,如果能实时查看就好了,linux下有tail命令 tail -f /var/log/mysql/mysql.log就行了,windows下没有相应的命令,这时就需要BareTail这个工具了,其实就是模拟tail操作的一个绿色可执行文件。打开后,浏览到之前定义的log文件,然后再运行wordpress,应该能看到BareTail里出现了SQL的操作记录,如下
可以看到wordpress的数据库开销还是挺大的。