sql >> Base de Datos >  >> RDS >> Mysql

¿Mysql count (*) es mucho menos eficiente que count (specific_field)?

Para InnoDB

Si specific_field no es anulable, son equivalentes y tienen el mismo rendimiento.

Si specific_field es anulable, no hacen lo mismo. COUNT(specific_field) cuenta las filas que tienen un valor no nulo de specific_field . Esto requiere mirar el valor de specific_field por cada fila. COUNT(*) simplemente cuenta el número de filas y en este caso puede ser más rápido ya que no requiere examinar el valor de specific_field .

Para MyISAM

Hay una optimización especial para lo siguiente, de modo que ni siquiera necesita recuperar todas las filas:

SELECT COUNT(*) FROM yourtable