Pergunta de desempenho da contagem de SQL
-
20-09-2019 - |
Pergunta
Estrutura da tabela de exemplo:
Id, Integer (PK)
Name, Varchar(100)
Description, Text
Eu preciso saber se existe diferença no desempenho entre:
SELECT COUNT(*) FROM Example;
e
SELECT COUNT(Id) FROM Example;
Ou não existe diferenças?
Solução
Existem diferenças no desempenho e no conjunto de resultados reais
Outras dicas
Verifique o plano de explicação: o resultado vem da tabela ou dos meta dados (por exemplo, informação_schema)?: As diferenças provavelmente serão muito mínimas.
Eu acreditaria que há uma diferença; Dependendo do tamanho da sua mesa, pode ser insignificante ou pode ser significativo.
Este é provavelmente o mais lento: selecione contagem (*) do exemplo
Isso é no meio: selecione contagem (id) do exemplo
Isso seria mais rápido: selecione contagem (1) do exemplo
Vale a pena ler, mas infelizmente em russo.
Conde (*), poderia ser mais rápido?
O conto é isso COUNT(*)
não é tão eficiente como acesso direto ao dm_db_partition_stats
.