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).
ParaMyISAMtabelas,COUNT(*)é otimizado para retornar muito rapidamente se oSELECTrecupera de uma tabela, nenhuma outra coluna é recuperada e não háWHEREcláusula. Por exemplo:
mysql> SELECT COUNT(*) FROM student;
Esta otimização só se aplica aMyISAMtabelas, 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.