Pour les jointures internes, une seule requête a du sens, puisque vous n'obtenez que des lignes correspondantes. Pour les jointures à gauche, plusieurs requêtes sont bien meilleures... regardez le benchmark suivant que j'ai fait :
-
Requête unique avec 5 jointures
requête :8,074508 secondes
taille du résultat :2268000
-
5 requêtes consécutives
temps de requête combiné :0,00262 seconde
taille du résultat :165 (6 + 50 + 7 + 12 + 90)
.
Notez que nous obtenons les mêmes résultats dans les deux cas (6 x 50 x 7 x 12 x 90 =2268000)
les jointures à gauche utilisent exponentiellement plus de mémoire avec des données redondantes.
La limite de mémoire peut ne pas être aussi mauvaise si vous ne faites qu'une jointure de deux tables, mais généralement trois ou plus et cela vaut des requêtes différentes.
En passant, mon serveur MySQL est juste à côté de mon serveur d'application... donc le temps de connexion est négligeable. Si votre temps de connexion est de quelques secondes, alors il y a peut-être un avantage
Franck