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 | 24/11/2024 17:01:15 | Généré en 13.32ms | Contacts | Mentions légales |