Этот вопрос проверяет знание возможностей быстрых хэш-индексов и их ограничений.
В PostgreSQL хэш-индексы не поддерживают уникальность: нельзя объявить CREATE UNIQUE INDEX с USING HASH. Хэш-индексы служат лишь для ускорения точных поисков, а уникальность обеспечивается только B-tree-индексами.
Хэш-индексы (USING HASH)
Оптимальны для точного поиска =.
Не поддерживают операторы <, >, диапазоны.
Уникальные индексы
В PostgreSQL возможно только UNIQUE + USING BTREE.
Почему:
Хэш-индексы не сохраняют порядок, PostgreSQL не реализовал проверку уникальности на их основе.
Альтернатива:
Использовать B-tree для уникальных полей, даже при преимущественном =.