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.