Blogs Media: CSS Mania | VivirLatino | Sentido Web | Apps Mania

Publicidad

Mar18Mar2008

Diferencias entre count(*) count(col)

09:30 H (CET)| Temas: MYSQL

Algo a tener muy en cuenta es conocer la diferencia entre count(*) y count(col) en consultas a MySQL.

Cuando realizamos un count(*), lo que hacemos es contar filas, si se trata de una tabla MyISAM y no hay un where, es la forma más rápida de obtener el número de registros de una tabla. Si existe un from o un where, es necesario contar el número de resultados.

Diferente es realizar un count(col), ya que cuenta las filas que tienen esa columna distinta de NULL, por lo que siempre habrá que contar todos los resultados.

Siempre me entra la duda entre count(*) y count(1), las "leyendas urbanas" dicen que es preferible el segundo caso ya que en el primero recuperas todos los datos. Yo sinceramente creo que es lo mismo y recuerdo que un consultor de Oracle también me lo dijo en un proyecto.

COUNT(*) vs COUNT(col)

Relacionados

Feedback (2) » Formulario

1. Artemio Estrella ~ Martes, 18 Mar 2008 | 15:41H:

Muchos piensan que el "select count(*)" se comporta igual que el "select *"; yo también ya había investigado sobre el caso y resulta que la manera eficiente es hacer "count(*)" en lugar de "count(1)"; el primero, según recuerdo, ya está implícito en el código del manejador de base de datos y para el segundo se está realizando una operación aritmética adicional.

2. Luis ~ Martes, 18 Mar 2008 | 17:45H:

Gracias Artemio por resolver la duda, la verdad es que bien pensando lo que dices tiene toda su lógica.

Saludos

Conversación

Nombre:

Email:

(no aparecerá)

URL:

(opcional)
¿Recordar datos?

↓ Comentarios (XHTML permitido)