我有一个共享的主机,我有我的网站和MySQL数据库。我已经安装了一个开放源码的统计脚本(phpMyVisites),最近它的工作非常缓慢。它是使用某种框架编写的,有许多PHP文件。我知道要查找慢速查询,可以在MySQL中使用慢速查询日志功能。但是在这个共享主机上,我不能使用这个方法,因为我不能更改my.cnf。我不想将我的统计脚本更改为其他脚本,我也不想乱搞这个脚本的所有文件,以找出将诊断代码放在哪里来手动记录查询。我想在不改变PHP代码的情况下这样做。
所以我的问题是:
如何在这些代码中记录缓慢的查询?:
有什么方法可以简单、简单、快速地做到这一点吗?
发布于 2010-04-17 18:07:20
嗯,也许创建一个函数来检查一个sql查询在返回一个值之前花了多长时间?如果它超过了指定的数量.例如,在php中,我会这样做
$before = time();
//run your query
$after = time();
$difference = $after - $before
if($difference > 5000)
//Log query它模仿了slog查询记录器,我认为没有一种在共享主机上启用它的方法。
希望这会有所帮助:)
发布于 2010-04-17 19:43:31
我快速地看了一下phpMyVisites。在config.inc.php中,我发现了以下内容:
// Other
if(!defined('DEBUG')) define('DEBUG', false);
define('DEFAULT_ACTION', false);
error_reporting( E_ALL );
if(DEBUG)
{
define('PRINT_TIME', false);
define('PRINT_QUERY_COUNT', true);
define('SAVE_DB_LOG', true);
define('PRINT_QUERY', true);
} 我怀疑SAVE_DB_LOG可能是一个很好的起点,所以我会尝试打开调试模式。
发布于 2010-04-17 21:13:58
是否将数据转储传输到可以激活慢速查询日志的本地测试系统?
https://stackoverflow.com/questions/2659422
复制相似问题