我有一个小的PHP框架,基本上只加载一个控制器和一个视图。 空页面加载大约0.004秒,在执行的开始和结束时使用microtime()。
这是“问题”。如果我执行以下操作:
$ link = @mysql_connect($ server,$ user,$ pass,$ link); @mysql_select_db($ database,$ link);
页面加载大约0.500秒。高达12500%的时间来渲染空白页面。
这是正常的还是我在这里做了一些严重的错误......(我希望后者)。
编辑:有人可以说连接到上面的mysql数据库会有什么正常的时间惩罚。
答案 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来获得用户权限。