Курс по Оптимизации PostgreSQL 3.0

Скачать программу в pdf

Записаться на курс

Отзывы на курс

Общий объем – 10 занятий по 2-3 ак.часа по 45 минут 

Старт – 14 сентября 2024 года

Даты и время – суббота, воскресенье в 10:00 по МСК

Формат занятий – вебинары на платформе Яндекс.Телемост

Среда для обучения: PostgreSQL 16 на ВМ Ubuntu 24.04

Все занятия и материалы будут доступны в записи

В версии 3.0 добавлена новая практика и дополнительные исследования, новые подходы к проектированию, data corruption, idle in transaction, chaos engineering и многое другое

Материалы прошлого запуска 2.1 (май-июнь 2024, 28 ак.часов) можно заказать отдельно

Заказать материалы или записаться на курс

Количество мест на курсе ограничено

Автор – Архитектор с 25+ опытом на хайлоад проектах (100+ Тб, 1 млн+ TPS)

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

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

Состав лекций:

1. Первичная настройка ОС и PostgreSQL

  • проблематика
  • первоначальная конфигурация ВМ, ОС и PostgreSQL
  • особенности бенчмарков
  • варианты измерения производительности
  • архитектура уникальной авторской БД по Тайским перевозкам
  • генерация и варианты использования от 6 до 600 млн. записей
  • работа на стенде
  • неочевидный count

2. Коннектинг к PostgreSQL. Права пользователя

  • проблематика
  • на что стоит обратить внимание при работе с сетью
  • docker caveats
  • best practice по обмену данными
  • варианты connection pooling
  • варианты балансировщиков
  • архитектуры построения отказоустойчивых соединений
  • тестирование производительности пулконнекторов
  • pgbouncer vs odyssey
  • нюансы при работе с правами пользователя

3. Настройка файловой системы

  • проблематика
  • табличные пространства
  • toast и сжатие данных
  • типы технологий хранения
  • типы файловых систем
  • контрольные суммы добро или зло
  • data corruption
  • шифрование данных
  • журналы транзакций – варианты тюнинга
  • каталог со статистикой – пути оптимизации
  • pg_class и связанные с ним проблемы
  • batch insert/update
  • unlogged table – киллер фича?

4. Настройка бэкапов и репликации

  • проблематика
  • варианты настройки бэкапов и тестирование производительности
  • преимущества Data Domain
  • варианты физической конфигурации
  • варианты логической конфигурации
  • мастер мастер репликация – киллер фича?
  • подключаемся репликой к DBaaS primary
  • PITR
  • тестирование конфигураций на стенде

5. Мониторинг, профилирование и логирование

  • варианты мониторинга
  • список основных параметров для мониторинга и причины
  • особенности профилирования
  • особенности логирования
  • инструменты анализа исторической нагрузки
  • pg_stat*
  • auto_explain
  • autovacumm_worker max load
  • audit

6. Тюнинг shared_buffers, background writer, checkpoint, WAL

  • проблематика
  • особенности работы MVCC PostgreSQL
  • буферный кеш – всё ли так очевидно?
  • принцип работы и тюнинг background writer
  • checkpoint, влияние на производительность и варианты тюнинга
  • восстановление после сбоев
  • pg_prewarm
  • WAL под капотом
  • контрольные суммы зло или нет?
  • движок OrioleDB

7. Особенности работы Vacuum, work_mem, statistic collector, locks

  • проблематика
  • принцип работы и тюнинг vacuum/autovacuum
  • vacuum on long transaction
  • Transaction ID wraparound
  • HOT Update
  • особенности выделения памяти при работы c work_mem и связанные с эти caveats
  • особенности работы со статистикой
  • блокировки, что с ними не так?
  • deadlock норма или ошибка архитектора?
  • idle, idle in transaction – насколько плохо?
  • сравнение производительности на стенде

8. Оптимизация схемы данных

  • что и почему нужно оптимизировать
  • как обновить схему данных и избежать проблем
  • добавление колонки, когда миллионы строк – паттерны
  • виртуальные колонки
  • индексы как серебряная пуля. или нет?
  • HypoPG
  • типичные ошибки при изменении схемы данных
  • использование колоночного хранения
  • timescale db
  • варианты использования postgres_fdw для ускорения работы
  • проблемы миграции
  • рассматриваем реальные кейсы на стенде

9. Оптимизация запросов

  • проблематика
  • пути оптимизации
  • возможные ошибки
  • анализ запросов – определяем узкие места
  • pg_hintplan
  • использование IN & EXISTS
  • prepared statements
  • принцип работы СТЕ и причины его использования
  • best practice & caveats
  • рассматриваем реальные кейсы на стенде

10. Обслуживание СУБД. Работа на стенде

  • причины обслуживания СУБД
  • обновление мажорной версии
  • freeze
  • stat
  • index, redindex, concurrently
  • materialized view refresh, concurrently
  • pg_repack vs pgcompacttable vs pg_squeeze
  • особенности выгрузки данных для дев стенда
  • security
  • debug && trace stored procedure
  • STONITH && chaos engeneering
  • стенд с проблемами производительности и чеклист, что нужно проверить. Оптимизируем работу

После завершения курса будет предоставлено электронное свидетельство о прохождении курса. Пример https://aristov.tech/certs/AristovEvgeniy.pdf

Записаться на курс

Скачать программу в pdf

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

13 − 6 =