Recentemente, la funzione numerica è stata usata molto e, quando il numero da contare è relativamente grande, si scopre che il count(*) richiede più tempo, mentre count(1) richiede meno tempo.
Alcuni documenti contengono le seguenti affermazioni:
Se la tua tabella dati non ha una chiave primaria, allora count(1) è più veloce di count(*). Se esiste una chiave primaria, allora la chiave primaria (chiave primaria congiunta) è anch'essa più veloce di count(*). Se la tua tabella ha un solo campo, allora count(*) è il più veloce contare(*) contare(1) confrontare i due. La cosa principale è contare i campi dati corrispondenti a (1). Se count(1) è un polyindex, id, allora deve essere count(1) più veloce. Ma la differenza è molto piccola. Poiché count(*), il campo è automaticamente ottimizzato per specificare a. Quindi non c'è bisogno di contare(?), usare count(*), SQL ti aiuterà a completare l'ottimizzazione
Dettagli sul conteggio: count(*) restituirà il numero totale di tutte le righe presenti nella tabella, incluse le righe con valore nullo,Tuttavia, count (nome colonna) restituirà il numero totale di tutte le righe della tabella tranne null(Vengono conteggiate anche le colonne con valori predefiniti). nome di colonna distinto, il risultato sarà il risultato dopo aver rimosso il valore nullo e duplicato dei dati
In passato, non sapevo che il blog dicesse che a tutti si consigliava di usare count(0) e che l'efficienza delle query fosse relativamente alta, ecc
Oggi si scopre che l'uso del count(0) sia un malinteso!!
count(0) La prima colonna della statistica non è vuota
Non usare number(nome colonna) o count(costante) invece di count(*),
count(*) è la sintassi per il numero standard di righe definite da SQL92, che non ha nulla a che fare con il database, NULL e non-NULL.
Nota: count(*) conta le righe con valore NULL, mentre count(nome colonna) non conta le righe con valore NULL.
Pertanto, in futuro, quando farai tutte le statistiche e non escludi dati vuoti, è meglio usare onestamente il conteggio (*)!!
|