Sobes.tech
Назад к вопросам
Senior
3

Индексы в PostgreSQL: что это такое, какие виды знаешь, чем B-tree лучше Hash?

Компании, где спрашивали
Магнит Тех

Ответ от нейросети

sobes.tech AI

В PostgreSQL индекс — это структура данных, которая ускоряет поиск строк в таблице по определённым столбцам.

Основные виды индексов:

  • B-tree — самый распространённый тип, подходит для равенств и диапазонных запросов.
  • Hash — индекс для быстрого поиска по равенству.
  • GIN и GiST — для полнотекстового поиска и сложных типов данных.

Почему B-tree лучше Hash:

  • B-tree поддерживает поиск по диапазонам (например, BETWEEN, >, <), Hash — только точное совпадение.
  • B-tree индекс можно использовать для сортировки, Hash — нет.
  • B-tree более универсален и надёжен, Hash-индексы в PostgreSQL менее распространены и имеют ограничения.

Пример создания B-tree индекса:

CREATE INDEX idx_users_name ON users USING btree(name);

Hash индекс:

CREATE INDEX idx_users_email_hash ON users USING hash(email);