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

В чём разница между index scan и index only scan

Разница между index scan и index only scan заключается в необходимости обращаться к основной таблице данных (heap):

  • Index scan — сначала ищет данные в индексе, но затем обращается к таблице для получения недостающих полей (например, если в запросе нужны столбцы, не входящие в индекс). Это требует дополнительных операций ввода-вывода.
  • Index only scan — использует только индекс, если все запрашиваемые поля содержатся в нём. Это быстрее, так как не требует чтения основной таблицы.

Пример:

sql
-- Index scan (нужны данные из таблицы)
SELECT name, age FROM users WHERE id = 1;

-- Index only scan (все данные в индексе)
SELECT id FROM users WHERE id = 1;

Для index only scan важно, чтобы индекс покрывал все запрашиваемые столбцы (covering index). В PostgreSQL дополнительно используется "visibility map" для проверки видимости строк без обращения к таблице.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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