Sobes.tech
Middle
33

Что быстрее работает: count(*) или count(имя_колонки)?

Companies where asked
ЛеруаМерлен

Answer from AI

sobes.tech AI

В большинстве СУБД count(*) и count(имя_колонки) работают с разной логикой:

  • count(*) считает количество всех строк, включая те, где значения в колонках могут быть NULL.
  • count(имя_колонки) считает только строки, где значение в указанной колонке не NULL.

По производительности count(*) обычно быстрее или не медленнее, так как СУБД не нужно проверять значения в конкретной колонке, а просто подсчитывает строки. В некоторых оптимизированных движках count(*) может использовать метаданные или индексы для быстрого подсчёта.

Пример:

SELECT count(*) FROM users; -- считает все строки
SELECT count(email) FROM users; -- считает только строки, где email не NULL

Итог: если нужна просто общая численность строк, лучше использовать count(*) — это обычно быстрее и точнее.