🔥 Индексы в PostgreSQL: когда они реально помогают, а когда мешают Многие ставят индексы “на всё подряд”, а потом удивляются, почему БД тормозит.
Многие ставят индексы “на всё подряд”, а потом удивляются, почему БД тормозит.
❌ Типичные ошибки:
- Индекс на колонке, которая почти всегда уникальна (например, id с PK — он уже индексирован).
- Индекс на поле с низкой селективностью (is_active = true/false) — толку ноль, только замедляет вставки.
- Создание 5+ индексов на таблицу без анализа запросов.
✅ Best practices:
- Делайте индекс под конкретный частый запрос.
- Для WHERE field LIKE 'abc%' — используйте btree.
- Для поиска по JSONB → GIN индекс.
- Для геоданных → GiST.
- Для частого условия — partial index:
CREATE INDEX idx_orders_active
ON orders(status)
WHERE status = 'active';
⚡️ Помните: каждый индекс ускоряет SELECT, но замедляет INSERT/UPDATE/DELETE.
👉 Итог: индекс — это инструмент, а не магическая таблетка. Всегда проверяйте план выполнения (EXPLAIN ANALYZE).
Сохрани, чтобы не забыть 🚀
#db
👉 @database_info