Я использую 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, просто хочу получить более глубокое понимание. Спасибо.