Результаты поиска
CPU в PostgreSQL
Зачем это знать:
-
CPU может быть причиной медленной БД.
-
Но часто БД ждёт диск, lock или плохой план.
Связанные темы:
Планировщик запросов и EXPLAIN
Куда тратится CPU
-
фильтрация строк,
-
join,
-
сортировки,
-
агрегации,
-
вычисления функций,
-
построение результата,
-
проверка индексов при записи.
Частые причины
-
большой Seq Scan,
-
Hash Join по большому набору,
-
Nested Loop с большим внешним набором,
-
ORDER BY без подходящего индекса,
-
GROUP BY по миллионам строк.
Пример
SELECT o.id, c.name
FROM orders o
JOIN clients c ON c.id = o.client_id
WHERE o.created_at >= '2026-01-01';
Важно:
-
индекс на
orders.created_at, -
индекс на
orders.client_id, -
актуальная статистика,
-
реальный объём данных.
Как снижать
-
читать план через Планировщик запросов и EXPLAIN,
-
добавлять индексы под WHERE/JOIN/ORDER BY,
-
не делать
SELECT *, -
ограничивать диапазоны дат,
-
дробить большие отчёты,
-
отделять OLTP от тяжёлой аналитики.