2013年8月31日 星期六

在 win7 使用 php 5.4 連 MySQL 變慢

有朋友跟我說,他在 win7 上面,PHP 使用 PDO 連 MySQL會頓,感覺比較慢。

我測試了一下,發現是在建立 PDO 物件的時候,拖慢了,
其它執行 SQL 的地方,則都正常。

再拿我自己的程式測試,發現沒有變慢的情況。
兩者比較之下,發現是 PDO 的 DSN 設定不一樣,
DSN 的 host  若填 localhost,便會變慢(new PDO建立連線就超過1秒),填 127.0.0.1 速度就正常。

再做了其他測試後,得到以下結果:
在 PHP 5.2.17, PDO 的連線 host 不管用 localhost 或 127.0.0.1,速度都是正常的
但在 PHP 5.4 (我試了 PHP 5.4.7、PHP 5.4.12),連線 host 設定 localhost 時,就會變慢。

解決方式:
  • 方法一:將 PDO 連線 host 的設定改為 127.0.0.1,不要用 localhost
  • 方法二:修改 C:\Windows\System32\drivers\etc\hosts 檔。

    #    127.0.0.1       localhost
    的註解拿掉,改成
    127.0.0.1       localhost
其他:
我在 winXP 上面也做了測試,php 5.4 似乎就不受系統 hosts 設定檔的影響了。

沒有留言:

張貼留言