Postgres. Почему для ограничения unique создается B-tree индекс?
По документации https://www.postgresql.org/docs/current/indexes-unique.html
Currently, only B-tree indexes can be declared unique.
По перфомансу был бы оптимален Hash index и для меня выглядит так что его функциональности достаточно для потдержания ограничения "unique". Почему в данном случае используется B-tree индекс?
Ответы (1 шт):
Автор решения: Мелкий
→ Ссылка
Потому что только для btree реализована соответствующая логика, позволяющая заявить amcanunique.
Если хотите погрузиться в нижележащую проблематику (либо и вовсе помочь с улучшением hash index access method) - можете начать вот отсюда. Дискуссионные моменты о concurency, а в основном нехватка заинтересованных людей для развития этого патча.