PostgreSQL: архитектура, настройка и оптимизация

3 июля
Илья Космодемьянский

Основные принципы устройства PostgreSQL, ключевые принципы правильного конфигурирования и подходы к оптимизации под высокие нагрузки — обо всем этом Илья поведает на специальном мастер-классе, посвященном "внутренностям" СУБД. Курс предназначен как для опытных профессионалов, так и для "молодых бойцов". Полученные в ходе прослушивания семинара знания пригодятся не только на практике. Они также призваны увеличить эффективность восприятия слушателями и, как следствие, полезность докладов, запланированных на второй день конференции.

Как база работает с памятью и файловой системой? Для чего предназначено версионирование? Что такое транзакции, как они устроены и почему полезны? Как строятся индексы и что происходит с запросом во время его выполнения? Что такое репликация и почему ее нельзя применять для backup/recovery? На все эти вопросы, и не только, ответит Илья.

Разобравшись с основами и "матчастью", мы перейдем к самому интересному: "тюнингу" базы в нагруженных системах, начиная с классического "Почему у меня тормозит запрос?" и заканчивая кручением "гаек" системных процессов "посгреса" под объемы данных и транзакционные нагрузки, соизмеримые с "big data".

Семинар будет проведен в открытом формате. В любой момент вы сможете смело прервать выступление с целью задать вопрос или уточнить непонятный для вас момент.

План семинара:

  1. Архитектура PostgreSQL и базовая настройка сервера.
    1. Алгоритмы управления транзакциями.
    2. Файлы и процессы.
    3. MVCC модель в PostgreSQL.
    4. Автовакуум.
    5. Работа с памятью и диском.
    6. Индексы.
    7. Жизненный цикл запроса.
    8. Backup & recovery.
    9. Репликация.
    10. Настройки, о которых нельзя забывать.
  2. Оптимизация производительности.
    1. Мы хотим новый сервер для базы данных, на что смотреть?
      1. Память.
      2. Диски.
      3. Операционная система.
    2. Измерения — основа оптимизации.
    3. “У нас тормозит такой-то запрос”.
      1. Что это значит и почему происходит?
      2. EXPLAIN.
      3. Рецепты для оптимизации.
      4. “Do not tune a query”.
      5. “Этот запрос не будет работать быстро никогда”. Почему?
      6. Как всегда быть уверенным, что в базе нет проблемных запросов.
    4. Оптимизация больших объемов записи и OLTP.
      1. Как понять, что это пора делать?
      2. Оптимизация записи WAL.
      3. Оптимизация bgwriter.
      4. Оптимизация автовакуума.
      5. Борьба с bloat.
    5. Оптимизация OLAP.

Презентация
Студентам – бесплатно!