Выбор ответа Junior Хранилища: OLTP, OLAP, DWH, lakehouse спрашивают часто обновлено

Почему колоночное хранение быстрее для аналитики

Вопрос

Почему колоночное хранение ускоряет запрос SELECT region, sum(amount) FROM sales GROUP BY region по таблице из 150 колонок?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Читаются только две нужные колонки, а однотипные значения хорошо сжимаются и считаются пачками. Строчная база прочитает все 150 колонок каждой строки, колоночная только region и amount.

Варианты ответа

  1. Читаются только две нужные колонки, а однотипные значения хорошо сжимаются и считаются пачкамиправильный ответ
  2. Колоночные базы хранят готовые результаты всех GROUP BY и отдают их без чтения данных
  3. В колоночной базе все данные лежат в оперативной памяти, а диск нужен только для бэкапа
  4. Колоночные базы не проверяют типы данных при чтении и пропускают разбор значений

Разбор

Строчная база прочитает все 150 колонок каждой строки, колоночная только region и amount. Сжатие уменьшает объём чтения ещё в разы, а векторная обработка ускоряет вычисления. Готовых результатов всех запросов никто не хранит (это делают отдельно материализованные представления). Данные лежат на диске, память работает как кеш. Типы проверяются как обычно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.