Si la columna está indexada, COUNT(DISTINCT id)
solo necesita devolver la cantidad de elementos en el índice de la columna. COUNT(id)
tiene que sumar el número de filas a las que apunta cada entrada de índice, o escanear todas las filas.
Para su segunda pregunta, vea count (*) y count(column_name), ¿cuál es la diferencia?
. La mayoría de las veces, COUNT(*)
es el más apropiado; hay algunas situaciones, como contar filas unidas con una unión externa, donde necesita usar COUNT(columnname)
porque no desea contar las filas nulas.