分析和优化PHP/MySQL网站

分析和优化PHP/MySQL网站,php,mysql,optimization,query-optimization,lamp,Php,Mysql,Optimization,Query Optimization,Lamp,我有一个服务器(VPS),它可以托管许多PHP/MySQL网站。大多数都非常相似,它们都是手工编码的网站,提供MySQL数据库中的文本和图像 服务器通信量最近增加了相当多,服务器速度有所减慢。因此,我想尝试找出服务器中的瓶颈,以便提高服务器的速度 有人对如何做到这一点有什么建议吗?我在一些较大的网站上设置了计时脚本,以查看创建网页所需的时间,但这始终是一个非常低的数字。根据服务器统计数据,主要问题似乎是CPU/MySQL的使用情况。是否仍然可以识别需要很长时间的查询 谢谢 Chris从fireb

我有一个服务器(VPS),它可以托管许多PHP/MySQL网站。大多数都非常相似,它们都是手工编码的网站,提供MySQL数据库中的文本和图像

服务器通信量最近增加了相当多,服务器速度有所减慢。因此,我想尝试找出服务器中的瓶颈,以便提高服务器的速度

有人对如何做到这一点有什么建议吗?我在一些较大的网站上设置了计时脚本,以查看创建网页所需的时间,但这始终是一个非常低的数字。根据服务器统计数据,主要问题似乎是CPU/MySQL的使用情况。是否仍然可以识别需要很长时间的查询

谢谢
Chris从firebug的“网络”选项卡开始,查看哪些资源响应最慢

但我可以告诉你,即使没有任何分析

服务于。。。来自MySQL数据库的图像


至少是原因之一。

是的,有办法!MySQL为此提供了内置功能


当然,其他一般建议是在常见查询中使用
解释
,并检查是否所有内容都已正确索引。

如果您使用的是mysql>=5.1,则可以使用
mysql\u查询(“set profiling=1”)在脚本中,如下所示:

mysql_query("set profiling_history_size=100");
mysql_query("set profiling=1");

....
....
any mysql query
....
....

$rs = mysql_query("show profiles");
while($rd = mysql_fetch_object($rs))
{
    echo $rd->Query_ID.' - '.round($rd->Duration,4) * 1000 .' ms - '.$rd->Query.'<br />';
}
mysql_查询(“设置评测_历史_大小=100”);
mysql_查询(“set profiling=1”);
....
....
任何mysql查询
....
....
$rs=mysql_查询(“显示配置文件”);
而($rd=mysql\u fetch\u object($rs))
{
echo$rd->Query_ID.'-'.round($rd->Duration,4)*1000.'ms-'.$rd->Query.
; }
示例输出:


XDebug有一个分析工具,可以为您提供大量有关代码瓶颈的信息。查看。

流量增加通常会导致服务器负载,那么问题出在哪里?并解释展会每月超过100万次的印象。没问题,这很好,但我想优化我的网站,而不仅仅是买一台更大的服务器。嘿,谢谢,但网站的实际HTML构建速度很快,所有内容都是手工编写的,非常精简。我认为问题在于我不知道如何分析的后端脚本:)这些“后端”脚本是什么?你没提到他们。另外,“一切都是手工编写的,非常精简”听起来不像是一个评测重定的版本。所谓后端脚本,我指的是PHP/MySQL。HTML、CSS和javascript非常精简。问题在于服务器性能,而不是网页内容本身。它不是后端脚本,称为前端脚本。使用firebug的“网络”选项卡,您可以确定哪个最慢。一个很好的起点。我会从中得到什么样的结果?它可以用于多个查询,还是仅用于一个查询?多个查询:在脚本的顶部标记Profiling,并在脚本的底部打印结果。