如果你启用该行
log_slow_queries = /var/log/mysql/mysql-slow.log
在
/etc/my.cnf or /etc/mysql/my.cnf
那么这将logging所有的查询,这需要比long_query_time的设置更长的long_query_time 。
在一个托pipe了很多网站的服务器上,你会得到一些条目,这些条目显示哪个主机在表单中的时间如下所示:
# Time: 130508 0:04:07 # User@Host: dbuser[dbhost] @ localhost [] # Query_time: 9.354343 Lock_time: 0.000094 Rows_sent: 0 Rows_examined: 1 use database_name; SET timestamp=1367964247; UPDATE some_table SET something='some data'
但最重要的信息是缺less的: 哪个脚本调用该查询? 同一个脚本里面的多个慢速查询不能及时加起来,所以有一个分析会很自然的发现脚本的名字。
是否有可能将PHP脚本名称添加到该日志?
或者可能以某种方式在分析脚本中以某种方式组合不同的日志,发现哪个脚本在那段时间被称为慢速查询?
MySQL无法知道PHP脚本正在运行。 它知道它是从用户名,密码,主机获得连接,并被要求进行一些查询。 所以它logging了它有什么可用的。
如果您是开发人员,则希望熟悉您的应用程序,以便在几秒钟内find用于查询的代码。 如果您不是开发人员,或者对应用程序不熟悉,请尝试grep 。 或者联系熟悉它的开发人员。