Esta es una respuesta de MySQL.
Funcionan exactamente igual, a menos que esté usando MyISAM, entonces un caso especial para COUNT(*)
existe Siempre uso COUNT(*)
de todos modos.
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
Para MyISAM
tablas, COUNT(*)
está optimizado para regresar muy rápidamente si SELECT
recupera de una tabla, no se recuperan otras columnas y no hay WHERE
cláusula. Por ejemplo:
mysql> SELECT COUNT(*) FROM student;
Esta optimización solo se aplica a MyISAM
tablas, porque se almacena un recuento de filas exacto para este motor de almacenamiento y se puede acceder a él muy rápidamente. COUNT(1)
solo está sujeto a la misma optimización si la primera columna se define como NOT NULL
.
La optimización anterior de MyISAM se aplica igualmente a
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
Así que la verdadera respuesta es que son siempre lo mismo.