Встречается на собеседованиях • сегодня
Как работает поиск при использовании индекса в PostgreSQL
PostgreSQL использует индексы для ускорения поиска данных, избегая полного сканирования таблицы (sequential scan). При запросе с условием WHERE, СУБД обращается к индексу (например, B-tree), который хранит отсортированные ключи и ссылки на строки.
Пример с B-tree индексом:
sql
-- Создание индекса
CREATE INDEX idx_users_email ON users(email);
-- Запрос, использующий индекс
SELECT * FROM users WHERE email = 'user@example.com';
text
**Нюансы:**
1. **Типы индексов:** B-tree (по умолчанию), Hash, GIN, GiST – выбор зависит от типа данных и операций.
2. **Covering Index:** Если индекс содержит все нужные поля, PostgreSQL может не обращаться к таблице (Index-Only Scan).
3. **Неиспользование индекса:** При неселективных условиях (`WHERE status = true`) или после `LIKE '%pattern'` оптимизатор может выбрать sequential scan.
**Проверка плана запроса:**
```sql
EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'user@example.com';
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы