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.