Встречается на собеседованиях • сегодня

В чем разница между хеш-индексом и индексом B-Tree в PostgreSQL

Основное отличие в структуре и применении:

  1. B-Tree - сбалансированное дерево, оптимально для диапазонных запросов (BETWEEN, >, <, LIKE 'prefix%'). Поддерживает сортировку и работает с любыми типами данных.
  1. Hash - хранит хеш-значения ключей, быстрее для точных совпадений (=), но не поддерживает диапазонные запросы. Требует перестройки при изменении размера таблицы.

Пример создания:

sql
-- B-Tree (по умолчанию)
CREATE INDEX idx_btree ON users (email);

-- Hash индекс
CREATE INDEX idx_hash ON users USING HASH (email);

Нюансы:

  • Hash занимает меньше памяти, но только для = операций
  • B-Tree надежнее, поддерживает уникальность, NULL-значения
  • В современных версиях PostgreSQL (10+) разница в производительности для = минимальна
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы