Sobes.tech
Middle

¿Qué funciona más rápido: count(*) o count(nombre_de_la_columna)?

sobes.tech AI

Respuesta de la IA

En la mayoría de los SGBD, count(*) y count(nombre_columna) funcionan con lógicas diferentes:

  • count(*) cuenta todas las filas, incluyendo aquellas donde los valores en las columnas pueden ser NULL.
  • count(nombre_columna) cuenta solo las filas donde el valor en la columna especificada no es NULL.

En términos de rendimiento, count(*) suele ser más rápido o igual de rápido, ya que la base de datos no necesita verificar los valores en una columna específica, simplemente cuenta las filas. En algunos motores optimizados, count(*) puede usar metadatos o índices para un conteo rápido.

Ejemplo:

SELECT count(*) FROM users; -- cuenta todas las filas
SELECT count(email) FROM users; -- cuenta solo las filas donde email no es NULL

En resumen: si solo necesitas el conteo total de filas, es mejor usar count(*), ya que generalmente es más rápido y preciso.