Importance de la clause WHERE ...

Importance de la clause WHERE ... - SQL/NoSQL - Programmation

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
Reply

Marsh Posté le 05-06-2004 à 19:02:14   

Reply

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.

Reply

Marsh Posté le 05-06-2004 à 19:29:12    

L'EXPLAIN donne bien le même résultat :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
Reply

Marsh 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.

Reply

Marsh Posté le 07-06-2004 à 09:50:08    

schmur a écrit :

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.


 
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.

Reply

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

Reply

Marsh Posté le 07-06-2004 à 11:40:51    

schmur a écrit :

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


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...


Message édité par gizmo le 07-06-2004 à 11:41:04
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed