我很难找到一个错误的查询,因为MySQL导致了高CPU负载。我正在寻找一种方法,在页面的末尾打印PHP,连接到MySQL后发出的每个查询。有没有办法在不存在已经存在的每个mysql查询后更改代码的情况下执行此操作?由于存在大量包含文件,因此很难在脚本中找到每个查询。
我知道我可以将每个查询记录到一个mysql日志中,但是我担心如此快速地写入数百个查询会使我的服务器过载甚至更多。此外,您可以更轻松地查看在特定页面上进行的所有查询,然后逐个查看。
提前致谢。
答案 0 :(得分:5)
我总是从MySQL Slow Query Log开始 - 记录每个查询会产生很多噪音。
如果您使用的是DAL(您应该是),那么您可以将跟踪添加到DAL。
否则没有一种简单的方法可以让PHP跟踪mysql,使用php.ini mysql.trace_mode只会出现警告和错误。(我已经检查了源php_mysql,函数{{1}并且没有任何东西可以记录所有内容。