COUNT(*)
zlicza wszystkie wiersze w zestawie wyników (lub grupie, jeśli używasz GROUP BY).COUNT(column_name)
liczy tylko te wiersze, w którychcolumn_name
NIE JEST NULL. Może to być wolniejsze w niektórych sytuacjach, nawet jeśli nie ma wartości NULL, ponieważ wartość musi zostać sprawdzona (chyba że kolumna nie dopuszcza wartości NULL).COUNT(1)
to to samo coCOUNT(*)
ponieważ 1 nigdy nie może być NULL.
Aby zobaczyć różnicę w wynikach, możesz przeprowadzić ten mały eksperyment:
CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
SELECT
COUNT(*) AS a,
COUNT(x) AS b,
COUNT(1) AS c
FROM table1;
Wynik:
a b c 3 2 3