Bonjour j'ai un problème avec phpMyAdmin , sur n'importe quelle requête que j'effectue j'ai un temp de 0,0000 seconde alors que sa prend beaucoup plus de temp .

comme ceçi :

J'ai absolument besoin de savoir le temp que prennent mes requêtes pour optimiser au maximum ma base de données Mysql merci de votre solution.

14 réponses


Salut,

Le temps affiché et le temps d'exécution du serveur SQL, pas le temps d'affichage depuis la page web.
C'est surement l'affichage des données sur la page qui prend du temps pas le requête ;)

SAMO
Auteur

Ha ok mais comment je peux connaitre le temps d'execution de la requête alors ?

Bah c'est 0 seconde

SAMO
Auteur

0 seconde ... c possible sur table de 1276 ligne ?

Essayes en ligne de commande, tu verras si c'est un pb lié à phpMyAdmin

teste avec des GROUP BY, c'est beaucoup plus long

pour info, une requête simple qui ramène une ligne ça tourne autour de 1 ms

Par exemple : regrouper toutes les communes de France par département (36000 regroupées en 98 dep)
durée 11ms

SAMO
Auteur

ok je teste et je te dit sa

Avec l'utilisation du cache ça tombe à 0 ms à partir du second appel

SELECT SQL_CACHE DEPARTEMENT , count(*) FROM villes GROUP BY DEPARTEMENT

pour que le cache soit actif, if faut modifier la variable
query_cache_type=2 (la mise en cache se fait à la demande grace au mot clé SQL_CACHE)
il faut aussi indiquer la taille du cache
query_cache_size=16M
16 Mo c'est bien suffisant
Pour un site web on peut mettre en cache les requêtes qui servent aux menus, catégories ... qui sont toujours les mêmes et dont les tables ne bougent pas.
Remarque : cette fonctionnalité doit disparaitre dans les futures versions de MySQL

SAMO
Auteur

C'est pas normal phpmyadmin m'affiche encore 0s alors que j'ai fait un

SELECT * FROM client LIMIT 10000

Le truc a pris beaucoup de temp .

C'est phpMyAdmin qui prend beaucoup de temps. C'est le rendu de la page web. C'est l'usine à gaz derrière.
Test avec Mysql en ligne de commande tu verras que c'est instantanné

SAMO
Auteur

Oui tu a raison c'est le rendu qui est lent ! pas le temp de la requête dans la console c'est ultra rapide .

J'ai afficher 1 000 000 de ligne sa veux dire quoi rows in set (0.33 sec) ??

Le temps retourné est celui de la préparation de la requête mais pas le temps de tranfert (Fetch time)

Tu peux faire un script php qui mesure le temps total avec la fonction microtime.

1000000 rows in set = 1million lignes dans le jeu de données

SAMO
Auteur

Le temp de préparation de la requête et le temps de transfert c'est quoi la différence ?