Les partenaires publicitaires:

Ma requête est rapide et lent dans mysql en php

Améliorer votre temps de requête MySQL dans votre script PHP augmente votre vitesse de navigation et empêche scripts temps morts de se produire. PHP est un langage de script avec des fonctionnalités pour vous aider à créer des pages web dynamiques. MySQL est un système de gestion de base de données relationnelle qui fournit de multiples utilisateurs un accès à des bases de données sur un serveur. Enquêter sur la cause de requêtes lentes avec le "EXPLIQUER" états, permettant le journal des requêtes lentes et le calendrier de vos requêtes wit la "microtime" fonction. Utilisation de l'extension PDO-MYSQL et mettre à niveau votre PHP et MySQL versions peuvent également aider à accélérer les requêtes.

Instructions

  • 1

    Mettez à jour votre PHP et MySQL pour les dernières versions de leurs sites Web. Les anciennes versions en conflit parfois avec l'autre tandis que les versions plus récentes disposent des corrections de bugs et sont plus susceptibles d'être compatible avec l'autre.

  • 2

    Ouvrez vos MySQL de "my.cnf" déposer dans un éditeur de texte tel que le Bloc-notes Windows. Localiser et régler la "log_slow_queries" possibilité de "ON" au lieu de "OFF". Met le "long_query_time" à un faible nombre tel que "1" et notez la "connectez-slow-queries" répertoire. Recharger votre service MySQL. Le "mysql-slow.log" va maintenant afficher les requêtes qui prennent beaucoup de temps à exécuter. Cela vous aidera à identifier la fréquence de votre requête exécute lentement.

  • 3

    Placez le "EXPLIQUER" déclaration dans votre requête devant un "SELECT" déclaration à extraire des informations de l'optimiseur comment votre requête sera exécutée. La sortie résultante peut révéler la cause de votre requête lente, comme un index manquant.

  • 4

    Temps de votre requête de PHP avec le "microtime" fonction en ajoutant le code suivant où votre requête se trouve:

    $ TIME_BEG = microtime (true);

    // Placer votre requête ici

    $ TIME_END = microtime (true);

    Time_res $ = $ TIME_END - time_start $;

    écho "la requête a pris time_res $ secondes";

    Cela permet de confirmer que la requête est la partie lente et pas une autre partie de votre code. Exécutez le code plusieurs fois jusqu'à ce que vous avez un temps cohérent. Comparez cette valeur de temps lorsque vous apportez des modifications futures de synchronisation.

  • 5

    Vérifiez des erreurs avec le "mysql_error" fonction en ajoutant le code suivant où votre requête se trouve:



    $ Result = mysql_query ($ query);

    if (! $ result) {

    $ Msg = 'Query error:' .mysql_error (). " N";

    die ($ msg)

    }

  • 6

    Utilisez l'extension PHP PDO_MYSQL pour interroger votre base de données à la place de la norme "mysql_query" ou "mysqli" fonctions. L'extension de PDO_MYSQL utilise natif préparé déclaration support de MySQL, qui peut aider à accélérer vos requêtes. Le code suivant est un exemple de la façon d'envoyer une requête MySQL avec l'extension PDO_MYSQL:




    $ Db_info = 'mysql: host = port localhost- = 3306- dbname = mydb';

    $ User = 'nom d'utilisateur';

    $ Pass = 'mot de passe';

    try {

    $ Db_handle = new PDO ($ db_info, $ user, $ pass);

    }

    catch (PDOException $ exception) {

    printf ("Erreur:% s", Exception $-gt; getMessage ()) -

    }

    $ Db_handle-gt; setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

    $ Db_handle-gt; setAttribute (PDO :: ATTR_AUTOCOMMIT, false);

    $ Sql ​​= "SELECT * FROM mytable";

    Result_set $ = $ db_handle-gt; query ($ sql);

    $ Result_set-gt; setFetchMode (PDO :: FETCH_ASSOC);

    while ($ row = $ result_set-gt; fetch ()) {

    $ Data = $ row ["mycolumn"] -

    }

    $ Result_set-gt; closeCursor ();

Conseils & Avertissements

  • Tout le code PHP doit être placé à l'intérieur "lt;? php" et "? Gt;" balises.
» » » » Ma requête est rapide et lent dans mysql en php