分析和优化PHP / MySQL网站

时间:2011-12-09 09:46:55

标签: php mysql optimization query-optimization lamp

我有一台托管众多PHP / MySQL网站的服务器(VPS)。大多数都非常相似,因为它们都是手工编码的网站,提供来自MySQL数据库的文本和图像。

最近服务器流量增加了相当多,服务器正在经历一些减速。因此,我想尝试识别服务器中的瓶颈,以便提高服务器的速度。

有没有人有关于如何做到这一点的任何提示?我在一些较大的网站上设置了计时脚本,看看网页创建需要多长时间,但它总是很低的数字。根据服务器统计数据,主要问题似乎是CPU / MySQL的使用情况。无论如何都要识别需要很长时间的查询吗?

由于 克里斯

4 个答案:

答案 0 :(得分:7)

如果您使用的是mysql> = 5.1,则可以在脚本中使用mysql_query("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 />';
}

示例输出:

enter image description here

答案 1 :(得分:4)

从firebug的Net选项卡开始,查看哪些资源的响应速度最慢。

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

  

从MySQL数据库提供......图像

至少是其中一个原因。

答案 2 :(得分:2)

是的,有办法! MySQL具有内置功能。 You can set up a log file to log slow queries

其他一般建议当然是对常见查询使用EXPLAIN并检查是否所有内容都已正确编入索引。

答案 3 :(得分:1)

XDebug有一个分析工具,可以为您提供有关代码瓶颈的大量信息。查看http://xdebug.org/docs/profiler