摘要:与DB的连接非常慢。
页面渲染大约需要10秒,但页面上的最后一个语句是一个回声,我可以在firefox中加载页面时看到它的输出(IE是相同的)。在谷歌浏览器中,只有在加载完成后,输出才会变为可见。浏览器的加载时间大致相同。
关于调试我发现它的数据库连接正在产生问题。数据库在另一台机器上。进一步调试。我在本地计算机上部署了数据库..所以现在数据库连接是127.0.0.1,但连接仍然需要很长时间。
这意味着问题在于APACHE / PHP而不是mysql。但后来我将我的代码部署在另一台远程连接数据库的机器上。一切似乎都很好。
基本上应用程序使用了几个mod_rewrite ..但我删除了所有的.htaccess文件,并且缓慢的连接问题仍然存在..
我在我的机器上安装了另一个APACHE并使用了默认设置。连接仍然很慢。
我添加了以下语句来衡量执行时间
$stime = microtime();
$stime = explode(" ",$stime);
$stime = $stime[1] + $stime[0];
// my code -- it involves connection to DB
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $stime);
echo $totaltime;
输出为0.0631899833679
但是firebug Net面板显示总加载时间为10-11秒。谷歌浏览器也是如此
我试图关闭Windows防火墙..连接速度仍然很慢
我只是不能找到原因..我已经尝试了多个数据库服务器..多个apach ..似乎没有什么工作..任何想法可能是什么问题?
[编辑]
请仔细阅读评论部分以了解更多详情。实际上我认为我即将获得解决方案。基本上我正在开发自己的框架,其中包括通过.htaccess文件重写URL。我添加了几个css和js文件,我注意到没有很好的理由(在Firefox中)为这些文件发送了多个请求。我认为这个问题与CONTENT-LENGTH标题有些相关,因为firefox没有收到这个标题所以它一直在等待内容(可能会有超时)..它与Transfer-Encoding有什么关系:chunked?
答案 0 :(得分:25)
我在这里参加派对已经迟到了,但我对此页面的任何未来访问者都有解决方案。
只需更改:
$link = mysqli_connect('localhost','username','password','db');
以强>
$link = mysqli_connect('127.0.0.1','username','password','db');
这将使本地主机的速度提高多达1000%。
答案 1 :(得分:-2)
fast-cgi解决了这个问题..感谢srisa ..刚刚改变apache通过fast-cgi运行php文件