Базы данных для бэкенда
SQL и JOIN, индексы и планы запросов, транзакции и изоляция, JDBC и ORM, моделирование данных, Redis и кэширование, обзор NoSQL.
Уроки
10- 01SQL: операторы, NULL и фильтрация
Группы команд, логический порядок SELECT, трёхзначная логика NULL, разница WHERE/HAVING и оконные функции — с ловушками, на которых валятся на собеседовании.
- 02JOIN, ключи и ограничения
INNER/OUTER/CROSS JOIN, ловушка ON vs WHERE, первичные/внешние/уникальные ключи и ссылочная целостность.
- 03Индексы и планы запросов
Устройство B-tree, hash vs B-tree, составной и covering индекс, цена записи и когда индекс не используется.
- 04Транзакции, изоляция и блокировки
ACID по буквам, аномалии чтения, уровни изоляции, MVCC и оптимистичные/пессимистичные блокировки.
- 05JDBC и безопасные запросы
Connection/Statement/ResultSet, PreparedStatement против инъекций, ручные транзакции, ресурсы и пул соединений.
- 06ORM, persistence context и N+1
Что делает ORM, lazy/eager и proxy, механизм N+1, способы лечения и типичные грабли.
- 07Практика оптимизации запросов
EXPLAIN и чтение плана, порядок колонок индекса, keyset-пагинация и ловушки, мешающие индексу.
- 08Моделирование данных и целостность
Ключи и constraints, нормальные формы простыми словами, осознанная денормализация и каскадные действия.
- 09Redis и кэширование
Cache-aside и стратегии записи, TTL и eviction, защита от stampede и аккуратные распределённые блокировки.
- 10NoSQL: семейства и когда их выбирать
Почему появился NoSQL, моделирование от access patterns, четыре семейства хранилищ, BASE против ACID и горизонтальное масштабирование.
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.