Per gli inner join, una singola query ha senso, dal momento che ottieni solo righe corrispondenti. Per i left join, più query è molto meglio... guarda il seguente benchmark che ho fatto:
-
Query singola con 5 join
query:8,074508 secondi
dimensione del risultato:2268000
-
5 query di seguito
tempo di query combinato:0,00262 secondi
dimensione del risultato:165 (6 + 50 + 7 + 12 + 90)
.
Nota che otteniamo gli stessi risultati in entrambi i casi (6 x 50 x 7 x 12 x 90 =2268000)
i left join utilizzano esponenzialmente più memoria con dati ridondanti.
Il limite di memoria potrebbe non essere così grave se esegui solo un join di due tabelle, ma generalmente tre o più e vale la pena eseguire query diverse.
Come nota a margine, il mio server MySQL è proprio accanto al mio server delle applicazioni... quindi il tempo di connessione è trascurabile. Se il tuo tempo di connessione è in pochi secondi, allora forse c'è un vantaggio
Franco