Windows 7、Apache 2、PHP 5、MySQL 5 を使用していますが、すべて同じマシン上にあります。興味深い問題が見つかりました。次のコードがあります。
$sql = "select * from user1";
$conn = mysql_connect("localhost", "root", "xxxxxxxx");
mysql_select_db("test1");
mysql_query("set names utf8");
$result = mysql_query($sql, $conn);
while ($row = mysql_fetch_assoc($result)){
foreach ($row as $key => $value){
echo $key." => ".$value." || ";
}
echo "<br/>";
}
mysql_free_result($result);
mysql_close($conn);
上記のコードの実行時間は 1 秒を超えています。
127.0.0.1
の代わりに使用するとlocalhost
、実行時間は約 10 ms です。
インターネットで根本的な理由を見つけようとしましたが、これが結果です。
最近、開発を XP から Windows 7 に移行したところ、開発した Web ページの読み込みに 5 秒かかっていました。もちろん、これは受け入れられないので、問題を追跡する必要がありました。最終的に、問題のある関数/メソッド pdo::construct を突き止めました。また、mysql_connect が接続を確立するのに約 1 秒かかっていることもわかりました。少しグーグルで調べたところ、php には IPv6 に関する問題があり、IPv6 を無効にするか、接続時に IP アドレス 127.0.0.1 に切り替えることで問題を解決できるという説明が見つかりました。
PHP での IPv6 の問題は何なのだろうか、もっと深く理解したいだけです。ありがとう。