Оптимизация запросов в PostgreSQL
Вставка
- Опубліковано 8 лют 2025
- Оптимизация запросов к базе данных - это необходимый шаг для улучшения производительности приложений и обеспечения быстрого доступа к данным. Неправильно оптимизированные запросы могут привести к медленной работе приложения раздражая пользователей. Предлагаем Вам ознакомитсья с докладом об оптимизации запросов в PostgreSQL.
Полезные ссылки:
1. Разные виды отображения плана, диаграммы, советы по оптимизации explain.tensor...
2. Бесплатные курсы по PostgreSQL и оптимизации запросов postgrespro.ru...
Константин Щепетков
#ZeBrains #базыданных #оптимизация #postgresql
zebrains.ru
Отличное видео. Спасибо!
Отличный материал
Огонь🔥
Спасибо большое, вам надо сделать трейнинг курс по этой теме !
Есть такая штука, как PMM(percona monitoring management). Удобная достаточно штука, для оптимизации тоже подойдет, настраивается легко.
Eplain показывает только текущий план выполнения, а каким образом смотреть планы, которые выполнялись у других пользователей без запуска опять? Есть понятие "план поехал" - PG ведь не собирает статистику по ним. Только в лог пишет по особо трудоемких операциям, что совсем неудобно. В DB2, Oracle можно поднять историю и посмотреть текущие планы из кеша. Есть куча иструментация в виде SQL профилей, SQL пачтей, карантина, фиксации лучшего плана и тд. В PG идет наработки в виде расширений, но пока все это на стадии личных усилий.
Для логирование explain долгих запросов есть специальный модуль у pg, называется "auto_explain".
Что касается "Есть понятие "план поехал" - PG ведь не собирает статистику по ним" - статистику он собирает, на основе нее (одна из статистик) он и определяет какой из планов выбрать.
Как раз из-за этой особенности и бывают случаи, что есть запрос, выполняется быстро, но стоит ему "поехать" пару раз, как pg перестает считать его оптимальным. В таких случаях помогает принудительный сброс статистики, либо простое ожидание когда статистика обогатиться актуальными данными.