TGViewer
Базы данных (Data Base) Базы данных (Data Base) @database_info · 8.05K subscribers
Post #1748 935
Какой тип индекса выбрать в PostgreSQL?

Индексы — мощный инструмент для ускорения запросов, но не все они одинаково полезны. В PostgreSQL есть несколько типов индексов, и вот как не промахнуться с выбором:


🔹 B-tree (по умолчанию)
📌 Лучший выбор для: =, <, >, BETWEEN, ORDER BY.
✅ Поддерживает сортировку.
💡 Используется в 90% случаев.


CREATE INDEX idx_users_name ON users(name);



🔹 Hash
📌 Только для точного сравнения =.
🚫 Не поддерживает диапазоны, сортировку, LIKE.
⚠️ Редко используется, но может быть быстрее B-tree на =.


CREATE INDEX idx_users_email_hash ON users USING hash(email);



🔹 GIN (Generalized Inverted Index)
📌 Для массивов, jsonb, full-text search.
💡 Отличен при поиске по вложенным структурам или множеству значений.


CREATE INDEX idx_data_tags ON posts USING gin(tags);



🔹 GiST (Generalized Search Tree)
📌 Для геоданных (PostGIS), поиска по диапазонам, tsvector.
💡 Более универсален, но медленнее в некоторых кейсах, чем GIN.


CREATE INDEX idx_events_location ON events USING gist(location);



🔹 BRIN (Block Range Index)
📌 Для огромных таблиц, где данные физически упорядочены.
💡 Занимает очень мало места.
⚠️ Не всегда эффективен — зависит от корреляции данных.


CREATE INDEX idx_logs_timestamp ON logs USING brin(timestamp);



✅ Не кидайтесь ставить индекс "на всякий случай". Подбирай тип под паттерн запроса и тип данных.

📲 Мы в MAX

#db

👉 @database_info
  • 👍 4
  • 🔥 2
  • ❤ 1
More from @database_info
  1. Sep 28, 2026SQL Important Queries Сохрани на потом, тебе пригодится👌 📲 Мы в MAX #db 👉 @database_inf…
  2. Sep 24, 2026Сегодня я хочу рассказать вам про одну часто недооцененную фишку в PostgreSQL - partial in…
  3. Sep 23, 2026🚀 Сегодня я покажу вам один из моих любимых хаков для PostgreSQL – генерация серий дат бе…
  4. Sep 22, 2026⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк…
  5. Sep 21, 2026Как быстро найти “тяжёлые” запросы в PostgreSQL Сегодня покажу простой способ найти самые…
  6. Sep 20, 2026🚀 Сегодня покажу, как быстро диагностировать «тормоза» в PostgreSQL - без всяких внешних…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →