Sobes.tech
Назад к вопросам
Middle
5

Разница между COUNT(*) и COUNT(1) — что лучше использовать?

Компании, где спрашивали
flank bank

Ответ от нейросети

sobes.tech AI

В SQL запросах COUNT(*) и COUNT(1) часто используются для подсчёта количества строк, но между ними практически нет разницы с точки зрения результата и производительности в большинстве современных СУБД.

  • COUNT(*) считает все строки, включая те, где все поля NULL.
  • COUNT(1) считает количество строк, подставляя в выражение константу 1, которая всегда не NULL, поэтому результат совпадает с COUNT(*).

Внутренне оптимизаторы баз данных обычно обрабатывают оба варианта одинаково эффективно. Поэтому лучше использовать COUNT(*) — это стандартный и более читаемый способ подсчёта всех строк.

Пример:

SELECT COUNT(*) FROM employees;
SELECT COUNT(1) FROM employees;

Оба вернут одно и то же число — количество строк в таблице employees.