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

COUNT è più veloce dell'estrazione dei record e del conteggio nel codice?

Se sai di aver bisogno dei dati, vai avanti, estraili e contali nel codice. Tuttavia, se hai solo bisogno del conteggio, è molto più veloce estrarre il conteggio dal database piuttosto che recuperare effettivamente le righe. Inoltre è pratica standard tirare solo ciò di cui hai bisogno.

Ad esempio, se stai contando tutte le righe in una tabella, la maggior parte delle implementazioni di database non ha bisogno di guardare nessuna riga. Le tabelle sanno quante righe hanno. Se la query ha filtri in where clausola e può utilizzare un indice, di nuovo non avrà bisogno di guardare i dati delle righe effettive, conta solo le righe dall'indice.

E tutto questo senza contare i meno dati trasferiti.

Una regola pratica sulle velocità del database è andare avanti e provarlo tu stesso. Le regole generali non sono sempre un buon indicatore. Ad esempio, se la tabella fosse composta da 10 righe e solo poche colonne, potrei semplicemente estrarre l'intera cosa nella remota possibilità di averne bisogno, dal momento che 2 viaggi di andata e ritorno al database supererebbero il costo della query.