Mysql
 sql >> Database >  >> RDS >> Mysql

UNISCI le query rispetto a più query

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:

  1. Query singola con 5 join

    query:8,074508 secondi

    dimensione del risultato:2268000

  2. 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