Toto je odpověď MySQL.
Fungují úplně stejně – pokud nepoužíváte MyISAM, pak speciální případ pro COUNT(*)
existuje. Vždy používám COUNT(*)
každopádně.
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
###EDITNěkterým z vás možná unikla temná snaha o humor. Dávám přednost tomu, aby to zůstalo jako neduplicitní otázka pro každý takový den, kdy MySQL bude dělat něco jiného než SQL Server. Takže jsem hlasoval pro znovuotevření otázky (s jasně špatnou odpovědí).Pro
MyISAM
tabulky,COUNT(*)
je optimalizován tak, aby se vrátil velmi rychle, pokudSELECT
načítá z jedné tabulky, nenačítají se žádné další sloupce a neexistuje žádnéWHERE
doložka. Například:mysql> SELECT COUNT(*) FROM student;
Tato optimalizace se týká pouze
MyISAM
tabulky, protože pro tento úložný stroj je uložen přesný počet řádků a lze k němu velmi rychle přistupovat.COUNT(1)
podléhá stejné optimalizaci, pouze pokud je první sloupec definován jakoNOT NULL
.
Výše uvedená optimalizace MyISAM platí stejně pro
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
Takže skutečná odpověď je, že jsou vždy totéž.