Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

readme.md

Курс Оптимизация Постгреса

Формат: онлайн-лекции

Продолжительность одной лекции: 2 ак.часа

Курс рассчитан на 14 лекций

Запись занятий и все материалы будут доступны на Яндекс-диске

Каждый новый запуск включает в себя новые соверменные продуктовые кейсы и материалы за прошедший с прошлого запуска период

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

  • Практический курс уникален для России и мира, предназначен для ДБА, архитекторов, девопсов
  • Каждое занятие включает тестирование примеров на стендах
  • Построен только на актуальных кейсах по реальным задачам, без воды
  • Экономит время и ресурсы как для текущих проектов, так и для модернизации существующих
  • Позволить ускорить поиск проблемных мест. Все собрано в одном месте с учетом экспертизы
  • Увеличивает быстродействие баз данных как Постгреса, так и остальных субд
  • Позволяет осознанно подходить к проектированию больших баз данных, изменению схемы данных
  • Оптимизирует планирование ресурсов для новых БД за счёт подробных инструкций, позволяет прогнозировать будущие проблемы
  • Бест практис, чеклисты и антипаттерны к каждой лекции
  • Сотни примеров по подходам к траблшутину БД
  • По желанию домашние задания идут к каждой лекции

Курсы выходят 3 раза в год - январь, май и сентябрь. Актуальное расписание на странице курса

Инвестируйте в «результат», а не «информацию»:

  • Уникальная экспертиза «из первых рук», собранная за 25+ лет работы с высоконагруженными системами. Это знание, которого нет в книгах и стандартных мануалах.
  • Это не теоретические вебинары. Каждое занятие — это продуктовая практика на тестовых стендах, максимально приближенных к боевым.
  • Сотрудники пройдут обучение на реальных кейсах, а не на синтетических примерах. Все методики уже доказали свою эффективность под высокой нагрузкой.
  • Контролируйте вовлеченность: к лекциям по желанию идут домашние задания для закрепления материала, но вы сами решаете, насколько глубоко погружаться.

Курс Оптимизация Постгреса (~30 ак.часов)

  1. Первичная настройка ОС и PostgreSQL (3 ак.ч.)
  • проблематика
  • конфигурация ВМ & ОС
  • swap vs OOMKiller
  • тюнинг PostgreSQL
  • best practice & caveats
  • особенности бенчмарков
  • варианты измерения производительности
  • архитектура авторской БД по Тайским перевозкам
  • генерация и варианты использования от 6 до 600 млн. записей
  • работа на стенде с реальными кейсами в каждой лекции
  1. Коннектинг к PostgreSQL. Права пользователя (3 ак.ч.)
  • проблематика
  • на что стоит обратить внимание при работе с сетью
  • docker caveats
  • best practice по обмену данными
  • варианты connection pooling
  • варианты балансировщиков
  • архитектуры построения отказоустойчивых соединений
  • тестирование производительности пулконнекторов
  • pgbouncer vs odyssey vs pgagroal vs pgcat
  • нюансы при работе с правами пользователя
  • RLS - row level security
  1. Настройка файловой системы (3 ак.ч.)
  • проблематика
  • табличные пространства
  • toast и сжатие данных
  • json vs jsonb - что с ними не так?
  • bytea - топ для хранения бинарных данных или нет?
  • типы технологий хранения
  • типы файловых систем
  • fsync - быстро ли это? и какие есть варианты
  • trim for SSD
  • контрольные суммы добро или зло
  • data corruption
  • шифрование данных
  • журналы транзакций - варианты тюнинга
  • каталог со статистикой - пути оптимизации
  • pg_class и связанные с ним проблемы
  • batch insert/update
  • unlogged table - киллер фича?
  1. Настройка бэкапов и репликации (3 ак.ч.)
  • проблематика
  • принципы построения HA и DR архитектур
  • варианты настройки бэкапов и тестирование производительности
  • преимущества Data Domain
  • варианты физической конфигурации
  • пять уровней синхронного коммита
  • варианты логической конфигурации
  • мастер мастер репликация - киллер фича?
  • подключаемся репликой к DBaaS primary
  • PITR
  • pg_rewind
  1. Мониторинг, профилирование и логирование (3 ак.ч.)
  • варианты мониторинга
  • список основных параметров для мониторинга и причины
  • pgcenter
  • PMM
  • auto_explain с нюансами
  • особенности профилирования
  • особенности логирования
  • инструменты анализа исторической нагрузки
  • pg_stat*
  • autovacumm_worker max load
  • audit
  1. Тюнинг shared_buffers, background writer, checkpoint, WAL (3 ак.ч.)
  • проблематика
  • особенности работы MVCC PostgreSQL
  • буферный кеш - всё ли так очевидно?
  • принцип работы и тюнинг background writer
  • Checkpoint, влияние на производительность и варианты тюнинга
  • восстановление после сбоев
  • pg_prewarm
  • WAL под капотом
  • движок OrioleDB
  1. Особенности работы Vacuum, work_mem, statistic collector, locks (3 ак.ч.)
  • проблематика
  • принцип работы и тюнинг vacuum/autovacuum
  • vacuum on long transaction
  • Transaction ID wraparound
  • HOT Update + tuning
  • особенности выделения памяти при работы c work_mem и связанные с эти caveats
  • особенности работы со статистикой
  • блокировки, что с ними не так?
  • multixact problems
  • deadlock норма или ошибка архитектора?
  • idle, idle in transaction - насколько плохо?
  1. Оптимизация схемы данных (3 ак.ч.)
  • что и почему нужно оптимизировать
  • как обновить схему данных и избежать проблем
  • добавление колонки, когда миллионы строк - паттерны
  • soft delete caveats
  • секционирование - киллер фича?
  • виртуальные колонки
  • использование предагрегатов mat.view vs triggers
  • индексы как серебряная пуля. или нет?
  • DEFERRABLE index
  • HypoPG
  • int VS bigint
  • bytea VS large object
  • caveat порядка колонок
  • типичные ошибки при изменении схемы данных
  • использование колоночного хранения
  • timescale db
  • варианты использования postgres_fdw для ускорения работы
  • проблемы миграции
  • изменение кодировки
  1. Оптимизация запросов (3 ак.ч.)
  • проблематика
  • пути оптимизации
  • возможные ошибки
  • анализ запросов - определяем узкие места
  • volatile or not
  • pg_hintplan
  • GEQO - генетический оптимизатор
  • использование IN & EXISTS & ANY
  • prepared statements
  • parameter sniffing caveat
  • 5 вариантов паджинации, самый быстрый и связанные проблемы
  • temp table отличный паттерн?
  • circuit breaker
  • принцип работы СТЕ и причины его использования
  • generated always - киллер фича?
  • best practice & caveats
  1. Обслуживание СУБД. Работа на стенде (3 ак.ч.)
  • причины обслуживания СУБД
  • отличие явного от неявного коммита
  • обновление мажорной версии
  • freeze
  • stat
  • index, redindex, concurrently
  • materialized view refresh, concurrently
  • pg_repack vs pgcompacttable vs pg_squeeze
  • особенности выгрузки данных для дев стенда
  • pg_orphaned
  • security
  • debug && trace stored procedure
  • STONITH && chaos engineering
  • стенд с проблемами производительности и чеклист, что нужно проверить. Оптимизируем работу

  • Каждая лекция сопровождается обширнейшей практикой на стендах для глубокого разбора той или иной проблемы.
  • Видео и материалы лекций будут доступны в записи.
  • После завершения курса будет предоставлено электронное свидетельство о прохождении курса.