Sobes.tech
Middle

O que funciona mais rápido: count(*) ou count(nome_da_coluna)?

sobes.tech IA

Resposta da IA

Na maioria dos SGBDs, count(*) e count(nome_da_coluna) funcionam com lógicas diferentes:

  • count(*) conta todas as linhas, incluindo aquelas onde os valores nas colunas podem ser NULL.
  • count(nome_da_coluna) conta apenas as linhas onde o valor na coluna especificada não é NULL.

Em termos de desempenho, count(*) costuma ser mais rápido ou pelo menos tão rápido, pois o SGBD não precisa verificar os valores numa coluna específica, apenas conta as linhas. Em alguns motores otimizados, count(*) pode usar metadados ou índices para uma contagem rápida.

Exemplo:

SELECT count(*) FROM users; -- conta todas as linhas
SELECT count(email) FROM users; -- conta apenas as linhas onde email não é NULL

Resumindo: se precisar apenas do total de linhas, é melhor usar count(*), pois geralmente é mais rápido e preciso.