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
MyISAMtabulky,COUNT(*)je optimalizován tak, aby se vrátil velmi rychle, pokudSELECTnačítá z jedné tabulky, nenačítají se žádné další sloupce a neexistuje žádnéWHEREdoložka. Například:mysql> SELECT COUNT(*) FROM student;Tato optimalizace se týká pouze
MyISAMtabulky, 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éž.