[RESOLU] Requète parfois "lente" parfois instantanée

Avatar du membre
Eléphant du PHP | 224 Messages

30 sept. 2019, 15:22

Couin Couiiinnnn ! :D

Une requête tapant sur 2 tables d'un tchat, pour récupérer les infos des comptes membres : Nom du membre, date et IP d'inscription, email, et nombre de messages.
Via Javascript/AJAX, je change l'ordre des résultats suivant sur quel entête de colonne je clique.

Les 4 premières infos sont directement lisibles dans la table blabax_users , le nombre de message est compté dans la table blabax_messages :

Code : Tout sélectionner

SELECT blabax_users.id, blabax_users.name, blabax_users.email, blabax_users.ipaddr, blabax_users.timestamp, (SELECT COUNT(id)FROM blabax_messages WHERE blabax_messages.userid = blabax_users.id) AS nb_mess FROM blabax_users ORDER BY blabax_users.name ASC
Voilà, des fois les résultats s'affichent directement, des fois il faut un moment avant que ca sorte.

A priori c’est le comptage du nombre de messages de chaque membre qui est long car quand je ne mets pas cette partie ca sort tout le temps rapidement.

Je pense que je dois faire une erreur quelque par car le tchat a moins de 28000 messages, a une 50aine de membres, et une dizaine seulement ont plus de 1000 messages.

Si vous avez un tuyau :D

Merki
Couin
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen:

Avatar du membre
Mammouth du PHP | 1609 Messages

30 sept. 2019, 16:41

Salut, pas de raison que ce soit particulièrement long du moment que tu as bien un index sur blabax_messages.userid.
Développeur web depuis + de 20 ans

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 sept. 2019, 22:49

+1, vérifie tes index
Et teste tes requêtes dans phpmyadmin pour voir si unitairement elles sont longues ou pas
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Eléphant du PHP | 224 Messages

01 oct. 2019, 13:54

Hello,

Merci pour vos réponses.

C'était effectivement une nouvelle fois une histoire d'index.

Petite question, comment savez vous sur quelle colonne l'index doit être mis ?

Merkouin :)
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

01 oct. 2019, 15:06

Petite question, comment savez vous sur quelle colonne l'index doit être mis ?
Sur celui sur lequel tu fais tes jointures ou des WHERE réguliers.
Voici une page qui explique bien cela :
https://sql.sh/cours/index
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Eléphant du PHP | 224 Messages

01 oct. 2019, 15:21

Super, merci encore une fois :)
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen: