Importance de la clause WHERE ... - SQL/NoSQL - Programmation
Marsh Posté le 05-06-2004 à 19:09:46
S'il fait réellement cela, c'est qu'il est encore plus mauvais qu'on ne se l'imagine...
Utilise EXPLAIN, si tu n'as pas le même chemin, désinstalle ce truc tout de suite.
Marsh Posté le 05-06-2004 à 19:29:12
ReplyMarsh Posté le 07-06-2004 à 08:43:56
oui les ordres des elements sont important et c'est plutot normal.
Dans ta premiere requete tu recherche tout ce qui conserne un utilisateur ce qui peut etre largement plus long que juste un topic.
La seconde en effet me parait largement meilleur.
Marsh Posté le 07-06-2004 à 09:50:08
schmur a écrit : oui les ordres des elements sont important et c'est plutot normal. |
Arrête de raconter n'importe quoi. Si l'explain donne la même indication, la requète sera effectuée exactement de la même manière.
Marsh Posté le 07-06-2004 à 10:13:42
explain je connais pas.
Mais ce qui est sur c'est que dans une clause where l'ordre des clauses (style selection ou jointure ) à une importance pour la durée du traitement. le resultat sera le même mais pas le temps de traitement
Marsh Posté le 07-06-2004 à 11:40:51
schmur a écrit : explain je connais pas. |
Putain mais arrète, tu t'enfonces! Explain sert à montre ce que le query analyzer à décider d'effectuer comme traitement pour réaliser ta requète. Si c'est le même traitement qui est affiché, c'est EXACTEMENT la même chose qui est réalisée.
La prochaine fois, lis le manuel avant...
Marsh Posté le 05-06-2004 à 19:02:14
Hello à tous,
J'ai une requête :
SELECT A.id, A.idtopic, A.icone, A.auteur, A.message, A.sign, A.date, A.id_user, A.ip, B.uidforum, B.site, B.signature, B.droit_sign, B.citation, B.avatar, B.droit_avatar, B.nb_mess
FROM post AS A, user AS B
WHERE B.id = A.id_user && A.idtopic =1966 && A.page =29
ORDER BY id
L'ordre des éléments de la clause WHERE est-il important ?
La requête serait-elle optimisée si je faisais :
SELECT A.id, A.idtopic, A.icone, A.auteur, A.message, A.sign, A.date, A.id_user, A.ip, B.uidforum, B.site, B.signature, B.droit_sign, B.citation, B.avatar, B.droit_avatar, B.nb_mess
FROM post AS A, user AS B
WHERE A.idtopic =1966 && A.page =29 && B.id = A.id_user
ORDER BY id
Je m'explique, ma table POST contient environ 100 000 enregistrements.
Ma table USER en contient seulement 3 000.
La 2nde requête me semble plus rapide, car elle va chercher les enregistrements du topic 1966, plus particulièrement de la page 29, et seulement ensuite les propriétés des users qui ont postés.
MySQL parse-t-il moins d'éléments avec la 2nde requête ?
Merci à tous
---------------
Envie d'un bol d'air ? Traxxas Revo 3.3