php涉及数据库操作时响应很慢(TTFB时间很长)
2016/03/12    标签: 55    数据库操作   

数据库地址为localhost时,导致网站打开很慢TTFB时间很长。
本地网站需要加上解析:
localhost 127.0.0.1
服务器上数据书如果不是真是ip地址建议换成真实ip地址。

描述:
网站是php开发的,大部分页面响应很慢。

本地开发时响应速度很快,但是部署到生产环境后大部分响应很慢。

通过谷歌浏览调试发现PHP页面加载很慢,有个别的php请求的响应时间甚至超过10秒,php请求的处理都不是很复杂,不该这么慢。

主要花费的时间全耗在了Waiting(TTFB)上,有的很慢的页面如那个10.2秒的页面,Waiting的时间竟然达到了10秒。

偶然间发现有个别的页面,在不登陆的情况下响应很快,登录后响应很慢,这样的页面特别查看了下,发现登录情况下会执行mysql的select,不登陆则直接显示固定的内容。

因此锁定为在涉及mysq操作时响应速度才很慢。

写了个简单的mysql 的select查询,通过web访问后发现很慢,通过microtime()统计执行时间发现时间是几十毫秒或毫秒级的,但是Waiting的时间仍然是秒级的。这明显的不科学啊,php从开始执行到结束的时间 和 web的响应时间差好几个数量级的。

涉及mysql操作时很慢,但是php本身执行完 mysql操作花费的时间并不慢啊。

弄到这也没啥路子了,只能去搜度娘了,结果还真搜到了,有人也出现一样的情况在度娘上提问了,竟然还有人回答了,突然感觉还是好人多啊。

按回答者的意思是连接数据库时使用的是localhost,但是hosts中没有配置localhost。

去查看hosts了,一看,我去。。。真没有localhost。

添加上

  127.0.0.1 localhost

,生成环境下php web访问速度立马给力了。