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

Qual è una query singola grande più veloce o poche query piccole?

Ogni "andata e ritorno" al database avrà delle spese generali. Quindi meno viaggi di andata e ritorno, meno spese generali. Considera anche che un minor numero di richieste significa meno pacchetti dal client al server. Se il risultato della query consolidata ti dà proprio ciò che desideri, la query singola è la strada da percorrere. Se la tua singola query restituisce dati extra o ridondanti (forse a causa della denormalizzazione), i risparmi generali di un singolo viaggio di andata e ritorno potrebbero andare persi nei dati extra trasferiti.

Un'altra considerazione è la latenza. Se le query devono essere completate in sequenza perché una parte dell'output di una è necessaria nell'input della successiva, il consolidamento in una query eliminerà tutte le latenze di rete tra tutte le singole query più piccole, quindi un risultato finale può essere consegnato più velocemente. Tuttavia, se le query più piccole sono indipendenti l'una dall'altra, avviarle in parallelo può ottenere tutti i risultati consegnati più velocemente, anche se in modo meno efficiente.

In conclusione:la risposta dipende dalle specifiche della tua situazione. Il modo migliore per ottenere una risposta sarà probabilmente implementare entrambi i modi, testare e confrontare l'utilizzo delle risorse di ciascuna implementazione.