Этап 5 из 15 · ≈ 8 ч

Как база хранит данные

Основа с Middle

B-дерево и LSM-дерево, журнал предзаписи, строковое и колоночное хранение.

Что важно знать

  • Сначала запись в журнал, потом в данные.
  • B-дерево быстрее читает, LSM-дерево быстрее пишет.
  • Аналитика по нескольким колонкам — колоночное хранение.

Критерии освоения

Middle ≈ 8 ч

  • Объясняет, как журнал предзаписи обеспечивает надёжность после сбоя
  • Отличает строковое хранение от колоночного и выбирает под OLTP или аналитику

Практика. Загрузить одну таблицу в PostgreSQL и в колоночную базу (ClickHouse или DuckDB) и сравнить время агрегирующих запросов и размер на диске.

Senior ≈ 6 ч

  • Сравнивает B-дерево и LSM-дерево по усилению записи и чтения и выбирает движок под нагрузку

Практика. Описать для своего сервиса профиль нагрузки — чтение, запись, обновления — и обосновать выбор движка хранения.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Почему индексы в базах данных устроены как B-дерево?Middle

B-дерево — сбалансированное дерево с широкими узлами: в узле сотни ключей, узел = страница на диске (8–16 КБ). Высота 3–4 даже для миллиардов строк — значит, 3–4 чтения страницы.

Полный разбор
Что такое журнал предзаписи (WAL) и зачем он нужен?Middle

Сначала запись в журнал, потом в данные. Перед изменением страниц база дописывает в конец журнала, что собирается изменить, и делает fsync. После сбоя журнал проигрывается заново — подтверждённые транзакции восстанавливаются.

Полный разбор
Что такое LSM-дерево и чем оно отличается от B-дерева?Senior

LSM-дерево превращает случайные записи в последовательные: запись идёт в журнал и в память (memtable), при заполнении memtable сбрасывается на диск отсортированным неизменяемым файлом (SSTable), а файлы в фоне сливаются (compaction).

Полный разбор
Чем строковое хранение отличается от колоночного?Middle

Строковое: строка лежит целиком подряд — быстро прочитать или изменить одну запись (OLTP). Колоночное: каждая колонка лежит отдельно — быстро посчитать агрегат по нескольким колонкам миллиардов строк (OLAP).

Полный разбор

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования