Индексы — главный инструмент для ускорения запросов. Но неправильное использование может только навредить.
Основные типы индексов в PostgreSQL:
-
B-tree — по умолчанию. Идеален для поиска по равенству и диапазону (=, <, >, BETWEEN).-
Hash — только для поиска по точному равенству (=). Становится актуальным реже.-
GIN — для массивов, JSONB, полнотекстового поиска.-
GiST — геоданные, поиск по диапазонам, сложные типы.-
BRIN — для очень больших таблиц с упорядоченными данными (например, логи).Практические советы:
- Не злоупотребляй индексами: каждый индекс замедляет
INSERT/UPDATE/DELETE.- Следи за актуальностью: периодически проверяй и удаляй неиспользуемые (
pg_stat_user_indexes поможет).- Составные индексы (
(col1, col2)) эффективны, только если условия WHERE учитывают порядок колонок.- Используй
EXPLAIN ANALYZE, чтобы понять, работает ли индекс в реальности.Типичная ошибка:
Создать индекс на всё подряд без анализа запросов. Итог — тормоза на записи и огромный размер базы.
✅ Индексы — это как специи: мало — пресно, много — несъедобно.
Вывод:
Хотите быструю базу — планируйте индексацию так же внимательно, как сами запросы.
Сохрани, чтобы не забыть!
📲 Мы в MAX
#db
👉 @database_info
