Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2672 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Importance de la clause WHERE ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Importance de la clause WHERE ...

n°753408
Max Evans
Posté le 05-06-2004 à 19:02:14  profilanswer
 

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
mood
Publicité
Posté le 05-06-2004 à 19:02:14  profilanswer
 

n°753414
gizmo
Posté le 05-06-2004 à 19:09:46  profilanswer
 

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.

n°753444
Max Evans
Posté le 05-06-2004 à 19:29:12  profilanswer
 

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


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°754333
schmur
Posté le 07-06-2004 à 08:43:56  profilanswer
 

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.

n°754380
gizmo
Posté le 07-06-2004 à 09:50:08  profilanswer
 

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.

n°754394
schmur
Posté le 07-06-2004 à 10:13:42  profilanswer
 

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

n°754539
gizmo
Posté le 07-06-2004 à 11:40:51  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Importance de la clause WHERE ...

 

Sujets relatifs
[MySQL] comment faire : DELETE FROM table1,table2 WHERE id=2 [résolu]resultats etranges avec mysql et la clause Having
[PHP/SQL] Plusieurs conditions dans where ?[PHP-SQL] selection aleatoire dans une bdd avec un where
Passer en paramètre la clause WHERE en PL/SQL[mysql] mysqldump --where ....
[Mysql] problème avec SELECT WHERE IN[MySQL]INSERT INTO avec un WHERE...
pb sql-serveur et clause in 
Plus de sujets relatifs à : Importance de la clause WHERE ...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)