run example compose mysql sql performance

example - ¿Qué es mejor en la cuenta de MYSQL(*) o cuenta(1)?



mysql docker compose (1)

Relacionados (SQL Server): Count (*) vs Count (1)

¿Podría decirme qué es mejor en rendimiento (MySQL)? ¿Contar (*) o contar (1)?


Esta es una respuesta de MySQL.

Realizan exactamente lo mismo, a menos que esté utilizando MyISAM, entonces existe un caso especial para COUNT(*) . Siempre uso COUNT(*) todos modos.

http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_count

COUNT (*) está optimizado para regresar muy rápidamente si SELECT se recupera de una tabla, no se recuperan otras columnas y no hay una cláusula WHERE. Por ejemplo:

mysql> SELECT COUNT(*) FROM student;

Esta optimización solo se aplica a las tablas MyISAM, porque se almacena un recuento de filas exacto para este motor de almacenamiento y se puede acceder a él muy rápidamente. Para los motores de almacenamiento transaccional, como InnoDB, almacenar un conteo de filas exacto es más problemático porque pueden ocurrir múltiples transacciones, cada una de las cuales puede afectar el conteo.

EDITAR

Algunos de ustedes pueden haber perdido el oscuro intento de humor. Prefiero mantener esto como una pregunta no duplicada para cualquier día en que MySQL haga algo diferente a SQL Server. Así que hice una votación para reabrir la pregunta (con una respuesta claramente incorrecta).

La optimización MyISAM anterior se aplica igualmente a

COUNT(*) COUNT(1) COUNT(pk-column) COUNT(any-non-nullable-column)

Entonces la verdadera respuesta es que siempre son iguales.