Esta é uma resposta do MySQL.
Eles executam exatamente o mesmo - a menos que você esteja usando MyISAM, então um caso especial para
COUNT(*)
existe. Eu sempre uso COUNT(*)
qualquer maneira. https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
###EDITAlguns de vocês podem ter perdido a tentativa sombria de humor. Prefiro manter isso como uma pergunta não duplicada para qualquer dia em que o MySQL fará algo diferente do SQL Server. Então eu joguei uma votação para reabrir a pergunta (com uma resposta claramente errada).
ParaMyISAM
tabelas,COUNT(*)
é otimizado para retornar muito rapidamente se oSELECT
recupera de uma tabela, nenhuma outra coluna é recuperada e não háWHERE
cláusula. Por exemplo:
mysql> SELECT COUNT(*) FROM student;
Esta otimização só se aplica aMyISAM
tabelas, porque uma contagem exata de linhas é armazenada para esse mecanismo de armazenamento e pode ser acessada muito rapidamente.COUNT(1)
só está sujeito à mesma otimização se a primeira coluna for definida comoNOT NULL
.
A otimização MyISAM acima se aplica igualmente a
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
A resposta real é que eles são sempre o mesmo.