Программа и содержание
Сайт: Сайт автора
Изучаем все тонкости на реально встречающихся кейсах — от тормозящих запросов и масштабирования БД до проблем с индексами и транзакциями.
Подойдет 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 на ведущих конференциях