Проверяет понимание работы СУБД и планов выполнения запросов.
COUNT(*) сканирует все строки таблицы, потому что Postgres не хранит счётчик строк. На больших таблицах без условий это может быть очень медленно.
В Postgres:
COUNT(*) читает каждую видимую строку;
MVCC не позволяет хранить точное количество строк заранее;
индекс не всегда помогает.
Медленно, если:
таблица большая (миллионы строк);
нет условий WHERE;
используется в realtime API.
Альтернативы:
приблизительное количество (pg_class.reltuples);
хранение счётчиков отдельно;
инкрементальные агрегаты;
фоновые джобы.
Вывод: COUNT(*) в API — почти всегда плохая идея.