2013-09-28 53 views
1

我的代碼是:爲什麼在PHP中連接MySQL需要2秒鐘?

$start = time(); 
$sqli = new mysqli("localhost", "root", "mySelectedPass", "mydb");  
echo time() - $start; 

結果:2

什麼問題?

我使用的XAMPP 1.8.1和Windows 8

答:使用127.0.0.1而不是本地主機:)

+2

你是如何測量SQL請求時間的?你確定你只是測量MySQL的執行時間,而不是其他的PHP /框架開銷? –

+0

謝謝你的回答。我使用螢火蟲 - >網路標籤。我跑的洞碼與問題碼相同。 –

+1

嘗試只測量'query'函數的執行。將'microtime()'保存到變量之前和之後並打印兩者之間的差異。 –

回答

1

你正在測試它需要連接到服務器的時間運行查詢,而在您的SQL管理工具中,您只測試查詢執行時間。

您可能會錯誤配置某些內容,導致連接到數據庫服務器的速度非常慢。大多數應用程序應該使用連接池,以避免每次請求都必須重新連接到數據庫。

+0

謝謝。我測量了連接時間,需要2秒。我必須修改哪些配置? –

+1

服務器很可能試圖解析您的IP地址並失敗。這是['skip-name-resolve'](http://dev.mysql.com/doc/refman/5.5/en/host-cache.html)配置參數。與您的查詢相比,連接時間仍然相當慢,因此請查看使用[persistent connections](http://php.net/manual/en/mysqli.persistconns.php)。 – tadman

+0

有一個問題,我認爲是有關這個問題http://stackoverflow.com/questions/13584360/php-with-mysql-is-slow-solved。正如你所描述的,在你鏈接我必須修改C:\ Windows \ System32 \ Drivers \等主機文件,但我不能修改它,因爲Windows說:這個文件是由其他應用程序打開。 –

相關問題