如何在共享主机MySQL中记录慢查询?

Tom*_*ski 6 php mysql optimization shared-hosting query-optimization

我有一个共享主机,我有我的网站和MySQL数据库.我已经安装了一个用于统计的开源脚本(phpMyVisites),并且它最近开始工作得非常慢.它是使用某种框架编写的,并且有许多PHP文件.我知道要查找慢查询,我可以在MySQL中使用慢查询日志功能.但是在这个共享主机上我不能使用这种方法因为我无法改变my.cnf.我不想将我的统计脚本更改为其他脚本,我不想乱用此脚本的所有文件来找出将诊断代码手动记录到哪里的诊断代码.我想在不改变PHP代码的情况下这样做.

所以我的问题是:

如何在这些编码中记录慢查询?:

  • 无法更改my.cnf以启用慢查询日志
  • 无法将统计脚本更改为其他
  • 不知道如何编写scrpt以及发出mysql命令的位置
  • 无法向我的提供商询问慢查询日志

有简单,方便,快捷的方法吗?

stu*_*meo 4

嗯,也许创建一个函数来检查 sql 查询在返回值之前花费了多长时间?然后,如果超过指定数量,则记录下来...例如在 php 中我会这样做

$before = time();
//run your query
$after = time();
$difference = $after - $before
if($difference > 5000)
   //Log query
Run Code Online (Sandbox Code Playgroud)

这模拟了 slog 查询记录器,我认为没有办法在共享主机上启用它。

希望这可以帮助 :)