2012-03-21 108 views
34

我在我的PHP應用程序中使用PDO。它連接到MySQL服務器在同一臺服務器上:爲什麼構建PDO連接速度慢?

$db = new PDO(mysql:host=localhost;dbname=test, $username, $password); 

我創建了兩個頁面與其中一個包含調用創建PDO相同的輸出(只是普通的HTML一些虛擬數據)。如果我打開不使用連接的頁面,則響應速度在0.5到1秒之間。

+0

如何從數據庫中獲取數據而無需連接? – deceze 2012-03-21 07:59:16

+0

虛擬數據只是一些普通的HTML,沒有任何數據庫。 – 2012-03-21 08:02:12

+1

這種影響是不正常的。似乎你有服務器相​​關的問題。也許SQL服務器響應緩慢。嘗試調查更多,但對我來說這似乎更像是ServerFault問題。 – 2012-03-21 08:03:28

回答

77

我一直在做一些谷歌搜索,並在閱讀this thread後,我將localhost更改爲127.0.0.1。解決了這個問題....

+2

您讓我的一天!使用本地主機需要一整秒的連接,使用127.0.0.1大約需要一毫秒。 – CodeZombie 2013-02-08 00:41:58

+1

非常有幫助的研究。我試圖找到解決方案,直到這有幫助。從1秒降到3秒以內。 – 2013-07-29 19:30:39

+8

有點'爲什麼':通過使用主機名,PHP被迫在DNS表中查找(慢!)。如果這是一張大桌子,可能需要很長時間才能找到該條目。通過使用靜態IP地址,您可以完全跳過這個解決方案。您甚至可以在非本地主機IP的生產環境中執行此操作! – Gerben 2013-08-01 14:33:25