PHP avec MySQL est Lent

(IMPORTANT) EDIT 3: de l'Exécution de l'testajax2.php par lui-même et de ne PAS l'AJAX. La durée est d'environ la même, 1.02-1.03 s. Donc je suppose que cela signifie que le problème est en PHP-MYSQL ou XAMPP?? Lorsque couru par le biais de phpmyadmin requête, voici le résultat: affichage des lignes 0 - 29 ( ~50 total , la Requête a pris 0.0015 sec). Il semble que le problème ne réside pas dans l'Ajax après tout, mais peut-être en PHP. De l'aide s'il vous plaît... (je viens juste d'éditer la question du titre.)

Réponse: Ajouter la ligne suivante dans le fichier hosts situé dans ”C:\Windows\System32\drivers\etc”

   127.0.0.1 localhost


La question avant:
Est-il normal pour l'Ajax de Jquery avec des requêtes sql sur l'autre côté de la durée minimale de 1 sec? J'ai essayé $.get, $.post,$.getjson,$.ajax({type:'POST'}), $.ajax({type:'GET'}). Comme je l'ai dit, c'est le minimum, il pourrait s'aggraver à environ 3 sec même. Je doute que c'est les requêtes sql si, comme lorsque je l'ai essayer dans phpmyadmin, les résultats sont très rapides.

Il n'a pas d'importance aussi si les requêtes sont très simples et la table a seulement 2 éléments, il serait toujours suivre les 1 sec minimum. J'utilise la dernière XAMPP, et je ne sais pas si ça compte, mais je suis l'accès aux fichiers par le biais de localhost et 127.0.0.1. Merci!

EDIT: Merci pour la réponse, les gars. Je suis en cours d'exécution sur un environnement local, sur le même ordinateur portable, j'ai fait de ces fichiers. Jquery est mis à jour. La valeur retournée/tableau est json_encoded. J'utilise mysqli. La base de données est en InnoDB, et l'intérieur sont à seulement 5 tables, et il n'y a pratiquement rien sur eux. Voici un simple exemple de requête:

index.php

    var test_id =2;
    testcall();
    function testcall(){
        $.ajax({
            url: 'testajax2.php',
            type: 'POST',
            data: {test_id: test_id},
            success: function(data){

            }       
        }); 
    }

testajax2.php

    $mysqli = new mysqli('localhost', 'root', '', 'testdb');
    $mysqli->set_charset("utf8");
    if(mysqli_connect_errno()) {
        echo "Connection Failed: " . mysqli_connect_errno();
        exit();
    }

    $testreceive = $_POST['test_id'];
    $query = "SELECT First_Name from tblperson";
    $result = $mysqli->query($query);
    $row = $result->fetch_all(MYSQLI_ASSOC);

    echo json_encode($row);

La tblperson contient 50 enregistrements, et il y a seulement 4 colonnes. Selon Firebug, il a fallu 1.03 s pour faire très simple tâche. Je ne suis pas sûr de ce que cela signifie vraiment, mais, en regardant à travers onglet réseau de Firebug, le bar est entièrement violet. 0 et 1.03 s en Attente. +1.03 s et 0 de Réception.

EDIT 2: Il n'a pas d'importance si je leur envoie comme json_encode($row) ou foreach($row as $value){ echo $value['First_Name']; }. Il serait encore au moins 1 seconde. J'ai essayé sur Chrome et Safari, et si je ne peux pas la durée exacte, je peux dire que c'est la même. Mais pour un simple appel ajax avec PAS de REQUÊTES SQL. Si je me souviens bien, c'est très rapide. Je serais de retour avec un échantillon et la durée de la sortie.

Nous avons besoin de plus d'info, votre contexte est trop vague. Avez-vous un lien où on peut essayer? Combien d'appels ajax avez-vous en même temps? Est votre environnement local ou distant? ....
Pouvez-vous montrer le code?
Pour moi / ma configuration, ce n'est pas normal non.. localement mes requêtes ajax (en moyenne, selon firebug) sont réalisées dans 140ms. Mais comme l'autre commentaire dit.. nous n'avons aucune idée de ce qui se passe sur votre machine, la complexité, les scripts sont.
Combien de temps cela prend-il pour votre application afin de répondre à la même demande directement (pas ajax) ? combien de temps cela prend-il de la requête à exécuter dans la base de données mysql cli ? par le biais de php ? très probablement l'erreur n'est pas de l'ajax. Sauf si vous avez un étrange état de votre serveur, la raison doit être soit dans le codage que vous faites avec la sortie est envoyée à l'ajax json (?) ou, plus probablement, le sql lui-même. Plus de données sont nécessaires pour fournir des conseils.
Désolé, juste ajouté plus de détails. L'exécution de l'testajax2.php donne directement sur la même durée que lorsque je l'ai appelé avec l'Ajax. Soupir! Je ne sais pas quoi faire d'autre à partir d'ici.. Aider s'il vous plaît.

OriginalL'auteur Wap | 2012-11-27