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

mysql count(*) è molto meno efficiente di count(specific_field)?

Per InnoDB

Se specific_field non è nullable, sono equivalenti e hanno le stesse prestazioni.

Se specific_field è nullable, non fanno la stessa cosa. COUNT(specific_field) conta le righe che hanno un valore non nullo di specific_field . Ciò richiede di esaminare il valore di specific_field per ogni riga. COUNT(*) conta semplicemente il numero di righe e in questo caso può essere più veloce in quanto non richiede l'esame del valore di specific_field .

Per MyISAM

C'è un'ottimizzazione speciale per quanto segue in modo che non sia nemmeno necessario recuperare tutte le righe:

SELECT COUNT(*) FROM yourtable