- Регистрация
- 10 Окт 2018
- Сообщения
- 59,897
- Реакции
- 333,557
- Голосов: 0
- #1
PostgreSQL изнутри: внутреннее устройство, трассировка и производительность
PostgreSQL Uncovered: Internals, Trace Analysis, and PerformanceАвтор: Bin Wang
Язык: английский
Если ваш PostgreSQL под нагрузкой ведёт себя странно, запросы внезапно замедляются, таблицы раздуваются, а подбор параметров идёт наугад, то дело часто в том, что вы не видите, что происходит внутри СУБД. Этот англоязычный курс Bin Wang разбирает PostgreSQL изнутри. Вы увидите, как сервер выбирает план, хранит версии строк, работает с памятью и пишет журнал.
Курс подойдёт бэкенд-разработчикам, администраторам баз данных и инженерам по производительности. Им мало просто писать SQL: нужно понимать, почему запрос медленный, и уметь доказать причину цифрами. На смену догадкам приходит диагностика: планы выполнения, трассировка на уровне процессов, разбор логов и статистики ожиданий.
Курс полезен, если вы хотите перейти от «кажется, нужен ещё индекс» к решениям, которые можно обосновать. Он поможет и с проблемами, где обычная оптимизация запросов уже не работает.
Автор предлагает видеть в PostgreSQL сложную, но вполне понятную систему с предсказуемым поведением. Механику СУБД вы разберёте последовательно, шаг за шагом. Вы научитесь читать низкоуровневые сигналы производительности и находить правильные решения там, где привычные приёмы уже бессильны.
Сначала идут знакомые SQL-конструкции, а затем курс постепенно переходит к глубинным механизмам PostgreSQL. По ходу вы разберётесь в системных процессах, в том, как устроено хранение данных, и в том, что на самом деле определяет скорость работы базы.
Основные темы:
- Планировщик запросов: разбор статистики, cost-модели, выбор индексов и стратегий выполнения.
- Транзакции и уровни изоляции: механика MVCC, версии строк, проблемы многоверсионности.
- B+Tree и другие индексы: внутренняя структура, причины роста bloating и методы борьбы.
- Shared Buffers и работа с памятью: поиск страниц, буферные состояния, взаимодействие с ОС.
- WAL: механизм журналирования, impact на производительность, стратегия чекпоинтов.
- Vacuum и autovacuum: алгоритмы, триггеры запуска, оптимизация параметров.
- Репликация: физическая и логическая, особенности, задержки, мониторинг.
К каждому блоку курса есть практические задания. В них вы изучаете, как ведёт себя СУБД в реальных сценариях нагрузки, поэтому теория сразу проверяется на живых примерах.
Инструменты и навыки:
- EXPLAIN ANALYZE: BUFFERS, VERBOSE, TIMING, сравнение планов и диагностика узких мест.
- perf и gdb: низкоуровневый анализ, трассировка, поиск «тяжёлых» участков.
- Анализ логов PostgreSQL: slow query logs, логирование чекпоинтов, статистика ожиданий.
К концу курса вы будете не только писать запросы, но и понимать, как PostgreSQL принимает решения и как поведение ядра отражается на результате.
По итогам обучения вы сможете:
- осознанно оптимизировать запросы и структуры данных;
- грамотно настраивать конфигурацию PostgreSQL под конкретные нагрузки;
- находить проблемы в производительности на уровне ядра, а не только на уровне SQL;
- читать и анализировать сложные планы выполнения и трассировки;
- предсказуемо управлять ресурсоёмкими процессами (vacuum, autovacuum, checkpoints).
Для кого подойдёт:
- Бэкенд-разработчикам, которые активно работают с PostgreSQL и хотят понимать причины медленных запросов
- DBA и администраторам баз данных, которые отвечают за настройку и стабильность серверов
- Инженерам по производительности и SRE, которые разбирают инциденты под нагрузкой
- Специалистам, которые хотят освоить диагностику PostgreSQL через perf, gdb и анализ логов
- Тем, кто готов учиться по материалам на английском языке
- Понимание планировщика, MVCC, индексов, Shared Buffers, WAL, vacuum и репликации изнутри
- Навык чтения EXPLAIN ANALYZE с BUFFERS, VERBOSE и TIMING, а также сравнения планов
- Опыт низкоуровневой трассировки PostgreSQL с помощью perf и gdb
- Умение настраивать конфигурацию и autovacuum под конкретную нагрузку
- Практические задания по поведению СУБД в реальных сценариях нагрузки
Скрытое содержимое доступно для зарегистрированных пользователей!
Скачать:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.