mysql _connect (localhost / 127.0.0.1 )медленный на платформе Windows

Я использую 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 мс.

Я попытался найти основную причину в Интернете, и вот результат:

I recently moved my development from XP to Windows 7 and found that webpages I had developed were taking 5 seconds long to load. This was unacceptable of course so I had to track down the problem. I eventually tracked down the offending function/method pdo::construct. I also found that mysql_connect was taking about 1 second to make a connection. After a little googling I found an explaination that php had issues with IPv6 and that you could fix the problem by either disabling IPv6 or switching to the ipaddress 127.0.0.1 when making your connection.

Интересно, в чем проблема IPv6 на PHP, просто хочу получить более глубокое понимание. Спасибо.

21
задан Danack 30 October 2013 в 18:58
поделиться