php mysql db连接速度很慢

时间:2009-10-11 18:48:58

标签: php mysql

我有一个小的PHP框架,基本上只加载一个控制器和一个视图。 空页面加载大约0.004秒,在执行的开始和结束时使用microtime()。

这是“问题”。如果我执行以下操作:

$ link = @mysql_connect($ server,$ user,$ pass,$ link); @mysql_select_db($ database,$ link);

页面加载大约0.500秒。高达12500%的时间来渲染空白页面。

这是正常的还是我在这里做了一些严重的错误......(我希望后者)。

编辑:有人可以说连接到上面的mysql数据库会有什么正常的时间惩罚。

4 个答案:

答案 0 :(得分:2)

Error suppression with @会降低您的脚本速度。 SQL连接也依赖于服务器的速度。因此,如果服务器响应缓慢,您的脚本执行速度会很慢。

答案 1 :(得分:0)

实际上,我不知道你要对$link变量做什么。 $link = @mysql_connect($server,$user,$pass,$link);可能是错误的,可能没有做你想要的(例如你的例子中没有),除非你有多个数据库链接(高级东西)

the php.net documention states

  

new_link

     

如果再次拨打电话   mysql_connect()也一样   参数,没有新的链接   建立,但相反,链接   已打开链接的标识符   将被退回。 new_link   参数修改此行为和   让mysql_connect()始终打开   新链接,即使mysql_connect()   之前被称为同样的   参数。在SQL安全模式下,这个   参数被忽略。

在我的网络服务器上,加载时间总是大致相同(第一次为4000μs,第二次为600μs)

连接到mysql数据库的时间有点慢,但也不常见。如果它在网络上具有现有负载的另一台服务器上,则可能绝对正常。

我不会太担心这个问题。

(哦,老问题!没关系,还在回答)

答案 2 :(得分:0)

您是否尝试过验证数据完整性?为所有表执行修复表和优化表。我知道有时当一张桌子腐烂时,连接时间可能会花费大量时间/一起失败。

答案 3 :(得分:0)

可能是域名解析缓慢的原因。

  

跳过名称解析

将此添加到my.cnf,然后重新启动mysqld。

如果你跳过name-resolve,你不能在mysql中使用hostname来获得用户权限。