mysql_connect ("localhost / 127.0.0.1) lent sur plate-forme Windows

Je suis avec Windows 7, Apache 2, PHP 5, MySQL 5, tous sont sur la même machine.
J'ai trouvé un intéressant problème, j'ai le code suivant:

    $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);

Le temps d'exécution du code ci-dessus est de plus de 1 seconde.

Lorsque j'utilise 127.0.0.1 au lieu de localhost, le temps d'exécution est d'environ 10 ms.

J'ai essayé de trouver la raison sous-jacente sur l'internet, et voici le résultat:

J'ai récemment déménagé de mon développement de XP à Windows 7 et a constaté que les pages web, j'avais été prendre 5 secondes pour charger. Cette situation était inacceptable de cours donc j'ai eu à traquer le problème.
Finalement, j'ai traqué la délinquance de la fonction/méthode pdo::construire. J'ai aussi trouvé que mysql_connect prenait environ 1 seconde pour effectuer une connexion. Après un peu de recherche sur google, j'ai trouvé l'explication que php a eu des problèmes avec l'IPv6 et que l'on pourrait résoudre le problème en désactivant l'IPv6 ou la commutation à l'adresse ip 127.0.0.1, lors de votre connexion.

Je me demande ce que la question de l'IPv6 sur PHP, veulent juste pour obtenir une meilleure understaning. Merci.

  • Votre serveur mysql sur ::1? Si pas de php sera probablement tentative de connexion via ipv6 et, si cela échoue, il en sera de retour à l'ipv4. Que devrait exiger un peu plus de temps.
  • Désolé pour ce que je ne comprends pas ce que "Est votre serveur mysql sur ::1?" signifie? Est-il signifiait que l'exécution de plusieurs serveurs mysql sur la même machine?
  • Merci pour cette question. J'ai juste accéléré mon site web énormément en utilisant 127.0.0.1 au lieu de localhost.
InformationsquelleAutor WaiKit Kung | 2012-07-26