症狀描述:
網站是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訪問速度立馬給力了。