Программа и содержание

Сайт: Сайт автора

Изучаем все тонкости на реально встречающихся кейсах — от тормозящих запросов и масштабирования БД до проблем
с индексами и транзакциями.

Подойдет middle/senior-разработчикам и архитекторам, если:

БД начала тормозить

Поставили индексы, чтобы ускорить чтение, а в проде упала скорость записи. Или произошло и то, и другое

Проблемы с транзакциями

По классике поставили Serializable для защиты от всех аномалий, а в подарок получили низкую пропускную способность

Много данных

Как их разложить, чтобы они занимали меньше места

Нужно масштабироваться

Пора скейлить БД, но страшно что-то сломать

Случился инцидент в БД

Ошибки чинятся вручную, миграции ломают прод — куда смотреть и как не наломать еще больше дров

PgSQL как черный ящик

Пользуешься «вслепую» и не понимаешь, как БД работает под капотом. Сложно обосновать выбор при проектировании архитектуры

Минимальные требования:

Любой ЯП

Базовый SQL

Базовый Computer Science

Джунам может быть сложно:

Программа рассчитана на тех, кто уже сталкивался с проблемами использования Postgres.

Если хочешь «набить шишки» заранее — приходи.

В рамках курса разберем:

PgSQL под капотом

Почему простой Update может раздуть таблицу в разы, куда девается место и почему «база тормозит без причины»

Индексы

Как выбирать индексы под задачу, когда они спасают, а когда — забивают память и замедляют вставки

Запросы и производительность

Как читать план выполнения запроса, находить ошибки в SQL и ускорять запросы, не трогая индексы и схему

Транзакции и конкурентный доступ

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

Надёжность и масштабирование

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

Мониторинг и troubleshooting

Как собрать health check по набору запросов и найти инцидента — на какие метрики смотреть и как интерпретировать

И все это — на задачах, которые постоянно встречаются в prod’e:

«Раздуешь» БД до массовых Update / Delete

Оптимизируешь 5 плохих запросов без добавления индексов

Доведешь 1 запрос до «production-grade» со стабильной пагинацией и корректными join’ами

Переработаешь одну из схем и подготовишь безопасную для прода миграцию

Подберешь индексы для запросов, внедришь и измеришь результаты

Реализуешь конкурентный доступ с выбором уровня изоляции, настроишь реплику и починишь production-инцидент

Из чего состоит курс:

Живые созвоны

Длятся по 1.5−2 часа и проходят 2 раза в неделю в свободное от работы время. Есть запись.

9 уроков в online-формате

Построили курс от проблем, которые встречаются на практике. Отточим все на учебном стенде.

Практика на реальных кейсах

Q&A-сессии

Online-встречи для ответов на вопросы по домашним заданиям и лекциям. Фидбек дает преподаватель — никаких кураторов и помощников.

В итоге освоишь Postgres на продвинутом уровне:

Внутреннее устройство и практическое применение

Тонкости, лучшие практики, паттерны и антипаттерны при использовании

Не будет потребности в чтении доплитературы — узнаешь все, что сейчас есть и используется

Можешь работать с любой реляционной БД — основополагающие концепции везде едины

Программа:

Урок №1. База по PgSQL и реляционным БД

Урок №2. Внутреннее устройство PgSQL

Урок №3. Запросы и производительность без индексов

Урок №4. Проектирование модели данных

Урок №5. Индексы

Урок №6. Транзакции и конкурентный доступ

Урок №7. Надёжность и масштабирование

Урок №8. Мониторинг и troubleshooting

Урок №9. Бонус. PostgreSQL в System Design

Преподаватель Олег Мифле

Team Lead разработки в Т-Банке

Т-Банк: руководит командой разработки, разрабатывает функционал внутри чата обслуживания

ВКонтакте: ex-Senior, разработка платформы для мини-приложений

SkyEng: ex-Senior, разработка back office продукта

Конференции: спикер Highload++, Стачка, PHP Russia, Podlodka Crew

15+ лет промышленного опыта разработки

7+ лет использует PgSQL в продакшене

12 терабайт максимальное кол-во данных в Postgres

10+ докладов по PgSQL на ведущих конференциях