Back to questions
Senior
4
Индексы в PostgreSQL: что это такое, какие виды знаешь, чем B-tree лучше Hash?
Companies where asked
Магнит Тех
Answer from AI
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);