Базы данных для бэкенда: PostgreSQL вглубь и карта хранилищ

Курс для бэкендера на любом языке: SQL и схема с нуля — дальше индексы, планы, MVCC, конкурентная запись, выбор хранилища под задачу. Чтобы самому находить причину медленного запроса и отвечать на секции по базам от понимания.
Средний уровень
10-15 часов в неделю
Часть
1 программы →
Сертификат Stepik

Чему вы научитесь

  • Читать EXPLAIN (ANALYZE, BUFFERS) и называть причину, по которой запрос по таблице в пять миллионов строк идёт четыре секунды вместо сорока миллисекунд
  • Подбирать индекс под конкретный запрос, объяснять, почему существующий не берётся, и считать его цену на записи
  • Защищать запись от гонок: уникальное ограничение, ограничение исключения, ON CONFLICT, блокировка строки, версия строки, идемпотентный повтор
  • Говорить, что именно видит транзакция на каждом уровне изоляции, и узнавать deadlock — потому что устроил его своими руками
  • Проектировать схему под запросы, которые к ней пойдут: нормальные формы, осознанная денормализация, типы PostgreSQL, jsonb, массивы и диапазоны
  • Писать SQL любой рабочей сложности — от JOIN и агрегатов до оконных функций, рекурсивных CTE и LATERAL
  • Переносить схему на живой базе, не заблокировав сервис: миграция в несколько шагов, двойная запись, переливка партиями, индекс без блокировки
  • Находить и устранять N+1 — по логу запросов, на любом ORM и любом языке
  • Строить поиск по описаниям: полнотекстовый на tsvector и семантический на pgvector — и называть границы обоих
  • Выносить файлы сервиса в объектное хранилище: спроектировать ключи и доступ, отдавать по временным ссылкам, держать базу согласованной с бакетом
  • Применять Redis по назначению: структура данных под задачу, TTL и вытеснение, инвалидация — и запрет делать кэш источником истины
  • Выбирать хранилище с числами в руках и выдерживать встречные вопросы — на ревью и на собеседовании

О курсе

На собеседовании по базам данных быстро видно, кто понимает механизмы, а кто пересказывает статьи. Почему не берётся индекс? Что увидит транзакция на Read Committed? Когда нужен Redis?

Этот курс — путь от первых таблиц и SQL до проектирования хранения для реального сервиса. В конце ты умеешь читать планы запросов, находить причину медленной работы, защищать запись от гонок, безопасно менять схему на живой базе и обосновывать выбор хранилища цифрами.

Не только SELECT и JOIN. Индексы и EXPLAIN, MVCC, изоляция, блокировки и deadlock, autovacuum, миграции без простоя, полнотекстовый и векторный поиск, PostgreSQL, Redis, S3, MongoDB, Elasticsearch и ClickHouse.

Практика строится вокруг задач, а не глав из справочника. Запрос выполняется 20 тысяч раз в минуту — появляется Redis. Файлы перестают помещаться в базу — появляется объектное хранилище. Сквозной проект растёт от каталога до пяти миллионов броней.

Курс не привязан к языку или ORM: Python, Go, Java, TypeScript, PHP, C# — неважно. Запросы, схемы, индексы и планы работают одинаково.

На выходе: локальный стенд с PostgreSQL и другими хранилищами, эксперименты руками и капстоун — решение по хранению для незнакомого сервиса с планом роста и трёхминутной защитой.

Стек: PostgreSQL 18, pgvector, SQL, Docker Compose, MinIO/S3, Redis, MongoDB, Elasticsearch, ClickHouse, DuckDB.

Чего здесь нет: эксплуатации СУБД, конкретных ORM, распределённых систем и дата-инженерии. Курс про решения, которые меняют код, схему и архитектуру сервиса.

Для кого этот курс

Курс для тех, кто уверенно пишет код, но данные до сих пор трогал через ORM и готовые запросы: что-то слышал про индексы и транзакции, системного знания нет. 1. Бэкенд-разработчики на любом языке — Go, Java, TS, PHP, C#, Python. Язык приложения здесь не имеет значения: предмет курса общий для всех. 2. Те, кто готовится к собеседованию на грейд выше и знает за собой, что секция по базам — самая слабая. 3. Разработчики, у которых пет-проект перерос игрушку: данных стало миллионы, список грузится секундами, и «добавить индекс» больше не помогает. 4. Те, кто прошёл вводный курс по backend и упёрся в данные: сервис написан, а что происходит внутри базы — по-прежнему непонятно. 5. Аналитики, дата-инженеры и QA-автоматизаторы, которым SQL нужен глубже уровня «выбрать строки», а устройство базы — чтобы понимать, почему запрос идёт долго.

Начальные требования

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

  • Программировать на каком-либо языке: функции, типы, коллекции, циклы, условия. Какой именно — неважно.
  • Работать в терминале на базовом уровне: запустить команду, прочитать вывод.

Что нужно на машине

  • Docker Desktop или Docker Engine с плагином compose — ставится по ходу курса, перед первым стендом.
  • Памяти виртуальной машине Docker — около 4 ГБ. Полный стенд к концу курса занимает меньше половины, и в шагах сказано, что останавливать, если памяти меньше.

Наши преподаватели

Как проходит обучение

Формат. Курс полностью текстовый: 17 модулей, 93 урока, 1159 шагов. Видео нет — есть текст, запросы, вывод команд, планы и разбор ошибок.

Проверка знаний. 446 шагов из 1159 — проверяемое задание: 77 SQL-задач и 369 вопросов с выбором, сопоставлением и порядком.

SQL решается прямо на платформе. Пишешь запрос, движок Stepik исполняет его на настоящих данных, ты сразу видишь результат — ставить для этого ничего не нужно. Одна честная деталь: тренажёр Stepik построен на MySQL 8, а курс про PostgreSQL. Поэтому задачи написаны в пересечении диалектов, и там, где диалекты расходятся, курс говорит об этом в том же шаге, где конструкция появляется. Переносимый SQL — рабочий навык, а не компромисс.

Квизы-диагностики. Дан план запроса, лог блокировок, схема или метрика — назови причину, а не определение. Каждый неверный вариант — типичная ошибка, и к нему написан разбор, почему так рассуждать не выходит.

Стенд на твоей машине — и это главное про формат. 192 шага-инструкции: сгенерировать пять миллионов строк, снять EXPLAIN, устроить deadlock, посмотреть вытеснение в Redis, переехать со схемой на живой базе. Автопроверить это платформа не может — серверов баз данных в её песочнице нет, и симулировать их на Python было бы нечестной формой. Поэтому вместо автопроверки: точные команды, дословно приведённый ожидаемый вывод, 61 блок «Проверь себя» и квизы на результат наблюдения.

Проектные шаги. Начиная с четвёртого модуля каждый заканчивается собственным проектом — 15 за курс, по условию и чек-листу «готово, когда»: что денормализовать, какие индексы нужны сервису, как защитить запись, как переехать со схемой незаметно, какое хранилище выбрать и чем за это платить.

Капстоун. Финал — спроектировать хранение под незнакомый сервис и защитить решение: разбор по ролям, индексы с обоснованием, план роста на десятикратном объёме и трёхминутная защита. Три варианта на выбор, включая «своё решение по своему проекту».

Сообщество. Проходить курс в одиночку не обязательно — у него есть «Гильдия вайба»: помощь, когда застрял, разбор чужих и своих решений по хранению, план, в котором оценка не сходится с фактом, поиск тиммейтов и вопросы с собеседований, на которые не нашлось ответа. Чем активнее участвуешь — тем больше берёшь от курса

Программа курса

загружаем...
Certificate

Сертификат

Сертификат Stepik

Входит в 1 программу

  •    
     
     

Что вы получаете

  • Локальный стенд на Docker Compose, собранный по ходу курса: PostgreSQL 18 и pgvector, MinIO, Redis, MongoDB, Elasticsearch, ClickHouse, DuckDB — вместе с данными, запросами и экспериментами он остаётся у тебя
  • Капстоун: решение по хранению для сервиса, разложенное по ролям, с числами, планом роста и защитой на три минуты — файл, который читается без тебя
  • Пройденный руками стек из вакансий: SQL и PostgreSQL, индексы и планы, транзакции и блокировки, объектное хранилище, Redis, MongoDB, Elasticsearch, ClickHouse
  • Ответы на вопросы секции по данным — от механизма, а не от заученной формулировки: в 27 шагах отдельно разобрано, почему эту тему спрашивают и что на самом деле засчитывают
  • 446 проверяемых заданий и 15 проектных шагов с чек-листами самопроверки
  • Умение объяснить своё решение по данным: что оптимизируем, чем платим и каким требованием это оправдано
  • Сертификат Stepik по итогам курса
  • Доступ к сообществу «Гильдия вайба» в Telegram и Discord

Сколько стоит обучение

Price: 4 990 
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям

Price: 4 990