COUNT(*) contra COUNT(col)

¿ Pero eso no es lo mismo ? ¿ Existe alguna diferencia ?

Si, existe, y es bastante importante, tanto en resultados como en velocidad.

COUNT(*) cuenta registros. Si la tabla es MyISAM, y no fijamos un WHERE, los resultados se calcularñan de forma extremadamente rápida, ya que MyISAM mantiene un contador de registros de toda la tabla. Si fijamos un WHERE, el servidor tan sólo tiene que contar el número de registros totales del resultado, lo que sigue siendo muy rápido. Esto es bastante diferente de….

COUNT(col) cuenta los valores NO NULOS DE LA COLUMNA COL dentro resultado de la consulta, en este caso el servidor necesita revisar todos los registros uno a uno, comprobando cuales de ellos no tienen un valor NULL, y la degradación de velocidad será muy importante.

Via http://arjen-lentz.livejournal.com/

Términos relacionados: , ,

Un comentario a esta entrada

  • r0sk dijo
    el # Sábado, 22 de Marzo del 2008 a las 17:51

    1

    So interesting, como la entrada anterior. Me apunto el -los- tips, as ever.

Deja tu opinión

Sólo se permiten las etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post anteriores/siguientes:

Post (quizás) relacionados:

  • Consultas MySQL útiles

  • Las 10 bases de datos más grandes del servidor [mysql] SELECT count(*) TABLES, table_schema,concat(round(sum(table_rows)/1000000,2),'M') rows, concat(round(sum(data_length)/(1024*1024*1024),2),'G') DATA, concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx, concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size, round(sum(index_length)/sum(data_length),2) idxfrac FROM information_schema.TABLES GROUP BY table_schema ORDER BY sum(data_length+index_length) DESC LIMIT 10; [/mysql] Número total de...
  • Contra ETA, papeleta

  • Por el siempre genial Manel Fontdevila Añado además una reflexión que hemos comentado en su blog... A principios de esta semana cuatro mujeres fueron asesinadas en...
  • MySQL - Post Totales en un blog por Mes y Año, en formato humano

  • Para que luego digan que Wordpress y similares están superoptimizados y no hay más donde ir... tse.. tse... dedicado al viciño r0sk, que es quien...
  • Test rápidos de MySQL - Test 6

  • Test 6 La siguiente consulta es perfectamente válida y hace lo que se espera de ella: [mysql] SELECT DATE(hora_creacion) AS date, COUNT(*)...
  • Sun Tzu - El arte de la guerra - V - Sobre la firmeza

  • La fuerza es la energía acumulada o la que se percibe. Esto es muy cambiante. Los expertos son capaces de vencer al enemigo creando una...