Това е MySQL отговор.
Те работят точно по същия начин - освен ако не използвате MyISAM, тогава специален случай за COUNT(*)
съществува. Винаги използвам COUNT(*)
така или иначе.
https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count
###РЕДАКТИРАНЕ Някои от вас може да са пропуснали черния опит за хумор. Предпочитам да запазя това като недублиран въпрос за всеки ден, когато MySQL ще направи нещо различно на SQL Server. Затова гласувах да отворя отново въпроса (с явно грешен отговор).За
MyISAM
таблици,COUNT(*)
е оптимизиран за връщане много бързо, акоSELECT
извлича от една таблица, други колони не се извличат и нямаWHERE
клауза. Например:mysql> SELECT COUNT(*) FROM student;
Тази оптимизация се отнася само за
MyISAM
таблици, тъй като точен брой редове се съхранява за този механизъм за съхранение и може да бъде достъпен много бързо.COUNT(1)
подлежи на същата оптимизация само ако първата колона е дефинирана катоNOT NULL
.
Горната оптимизация на MyISAM важи еднакво за
COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)
Така че истинският отговор е, че те савинаги същото.