Auteur | Message |
---|---|
mirage
| ![]() Inscrit le : 04/05/2005 |
# Le 13/04/2007 à 18:09 Hop, id select_type table type possible_keys key key_len ref rows Extra Actuellement, les tables concernées ne sont pas très remplies (quelques dizaines de milliers d'enregistrements au maximum) mais il devrait y en avoir plusieurs centaines de milliers au final. Donc en gros, faut-il mieux faire plusieurs jointures (si tout est bien indexé, je dirais que oui mais je n'en suis pas sur) ou bien plusieurs select ? Marchi ![]() NB : J'ai réussi à ne pas casser le forum, je suis content ![]() |
jdelire
| Lilian ![]() Inscrit le : 14/05/2005 |
# Le 13/04/2007 à 18:39
NB : J'ai réussi à ne pas casser le forum, je suis content ![]() Raté, pas sous ie ![]() |
mirage
| Vincent ![]() Inscrit le : 04/05/2005 |
# Le 13/04/2007 à 18:40
jdelire a dit : Raté, pas sous ie ![]() Je parle des navigateurs, pas du reste ![]() |
PyRoFlo
| Florent ![]() Inscrit le : 09/05/2005 |
# Le 13/04/2007 à 18:40 Je ferais une seule jointure, c'est mieux digéré par mySQL et pour maintenir le code je trouve ça plus simple, en cas de modification d'une ou plusieurs tables par exemple. mirage a dit : NB : J'ai réussi à ne pas casser le forum, je suis content ![]() FAUX ! Sous IE 7 c'est dégueu ![]() |
Shain
| Yoann ![]() Inscrit le : 10/05/2005 |
# Le 13/04/2007 à 19:55 Pour moi, les SGBD sont optimisés pour gérer les jointures (c'est leur job après tout) donc à mon avis il vaut mieux travailler avec des jointures qu'avec du SELECT à outrance. [ Shain ] |
devtribu
| Olivier ![]() Inscrit le : 16/06/2005 |
# Le 13/04/2007 à 20:00 Une jointure sur 8 tables, contenant pour certaines des centaines de milliers de lignes, ca me parait tout de meme tendu... Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0f |
mirage
| Vincent ![]() Inscrit le : 04/05/2005 |
# Le 13/04/2007 à 20:59
devtribu a dit : Le 0.0054 sec ne serait pas un temps de reponse d'une requete en cache ? Effectivement, en rajoutant "SQL_NO_CACHE" dans la requête, ça passe à 0.0442. Les données seront mises en cache donc les requêtes ne seront pas effectuées toutes les secondes, ça devrait être correct. Le problème c'est que ce n'est pas facile d'améliorer la structure des tables car il y a trop de critères nécessitants des id uniques en provenances de tables... |
Bool
| Olivier ![]() Inscrit le : 09/05/2005 |
# Le 13/04/2007 à 22:51
J'ai des données éparpillées sur plusieurs tables (8 pour être exact) et je voulais savoir s'il faut mieux faire une jointure ou plusieurs select (pour récupérer un seul résultat Dans le cas d'Oracle sur une énorme base (certaines tables contenant des dizaines de millions d'enregistrement), les deux cas se présentaient selon les cas. On avait des requetes contenant une dizaine de vues imbriquées (c'est à dire de nombreux select imbriqués, avec jointures dans tous les sens) qui étaient parfois plus rapide que la méthode "X tables temporaires".... et parfois c'était tout le contraire... Bref, pas de règle absolue de ce coté, le volume de données, les indexes et l"optimiseur" interne du SGBD feront la différence. PS : oui mon post ne sert à rien ![]() Pense à utiliser les LEFT JOIN, c'est bien plus performant que les jointures par id dans une clause WHERE. mmm généralement c'est tout le contraire.... et puis de toutes façons ça ne retourne pas du tout le même résultat, donc bof. |
superfc
| Florent ![]() Inscrit le : 01/07/2006 |
# Le 15/04/2007 à 22:21 Je me trompe peut être, mais les LEFT JOIN, c'est à priori pour pouvoir faire en acceptant qu'il n'y ait pas de correspondance, les colonnes concernées valent alors null. Florent Clairambault - http://florent.clairambault.fr |
Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.
© MHN - Tous droits réservés | CNIL N°844440 | 25/02/2025 13:20:02 | Généré en 7.81ms | Contacts | Mentions légales |