Detta är ett MySQL-svar.
De fungerar exakt likadant - om du inte använder MyISAM, sedan ett specialfall för COUNT(*)
existerar. Jag använder alltid COUNT(*)
i alla fall.
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
###EDIT Några av er kanske har missat det mörka försöket till humor. Jag föredrar att behålla detta som en icke-duplicerad fråga för en sådan dag då MySQL kommer att göra något annat än SQL Server. Så jag röstade för att återuppta frågan (med ett klart felaktigt svar).För
MyISAM
tabeller,COUNT(*)
är optimerad för att återvända mycket snabbt omSELECT
hämtar från en tabell, inga andra kolumner hämtas och det finns ingenWHERE
klausul. Till exempel:mysql> SELECT COUNT(*) FROM student;
Denna optimering gäller endast
MyISAM
tabeller, eftersom ett exakt radantal lagras för denna lagringsmotor och kan nås mycket snabbt.COUNT(1)
är endast föremål för samma optimering om den första kolumnen är definierad somNOT NULL
.
Ovanstående MyISAM-optimering gäller även för
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
Så det verkliga svaret är att de är alltid samma sak.