Я использую 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 мс.
Я попытался найти основную причину в Интернете, и это результат:
Недавно я перевел свою разработку с XP на Windows 7 и обнаружил, что веб-страницы, которые я разработал, занимали 5 секунд для загрузки. Конечно, это было неприемлемо, поэтому мне пришлось отследить проблему. В конце концов я выследил нарушающую функцию/метод pdo:: construct. Я также обнаружил, что mysql_connect занимает около 1 секунды, чтобы установить соединение. После небольшого поиска в Google я нашел объяснение, что php имеет проблемы с IPv6, и что вы можете исправить эту проблему, отключив IPv6 или переключившись на ipaddress 127.0.0.1 при подключении.
Интересно, в чем проблема IPv6 на PHP, просто хочу получить более глубокое недопонимание. Спасибо.