PG_EXPECTO
32 subscribers
69 photos
30 videos
132 links
Эксперименты по анализу и оптимизации производительности PostgreSQL.
📝Автор и ведущий: Сунгатуллин Ринат. 📨Telegram: @rinace
📧Email: kznalp@yandex.ru
⛩️Дзен: https://dzen.ru/kznalp
🗳️GitHub: https://github.com/pg-expecto/pg_expecto
Download Telegram
22 января 2026 года будет 2 года с даты первой публикации на тему анализа производительности СУБД PostgreSQL.
Проделана огромная и очень интересная работа. Практические результаты - есть.
Впереди - громадные перспективы .
👍1
В эпоху, когда нейросети становятся первым источником знаний для многих разработчиков, особенно важно проверять их утверждения на практике. Один из таких вопросов — прямая связь между типами ожиданий в PostgreSQL и отсутствием индексов. AI-помощники часто дают логичные, но упрощённые ответы, которые могут ввести в заблуждение при решении реальных задач оптимизации. В этой статье мы проверим экспериментально, насколько обоснованно распространённое мнение о том, что IO-ожидания однозначно указывают на проблемы с индексацией.

https://dzen.ru/a/aQcIuJg0iE4QlGi0
Скоро 4-я версия : гибкая настройка сценариев , демобаза 2.0.
Анонс следующей статьи в качестве итога возможности применения нейросетей для оптимизации производительности СУБД PostgreSQL.

Машинное обучение и нейросети проникают во все сферы, суля автоматизацию и ускорение рутинных процессов. Искушение поручить искусственному интеллекту тонкую настройку запросов к PostgreSQL под высокой нагрузкой велико. Однако, слепо доверяя нейросетям такую задачу, мы рискуем получить обратный эффект — не ускорение, а катастрофическую деградацию производительности.
Для реального, практического применения в условиях высокой нагрузки и конкуренции за ресурсы СУБД - рекомендации нейросетей в лучшем случае слабо применимы и носят справочно-рекомендательный характер, в крайнем случае приводят к деградации производительности СУБД.
Использовать нейросети для оптимизации СУБД под высокой нагрузкой - не рекомендуется.
https://dzen.ru/a/aRgSKai3yHRhwh2c
В мире высоконагруженных систем любая мелочь может стать бутылочным горлышком. Мы привыкли, что индексы — это панацея для производительности СУБД, своего рода «волшебная таблетка» для ускорения запросов. Но что, если под давлением конкуренции и стремительно растущей нагрузки классические подходы дают сбой?
В этой статье показаны результаты нагрузочного тестирования PostgreSQL в условиях нагрузочного тестирования, которые привели к парадоксальному на первый взгляд выводу. Когда количество одновременных операций растет, а данные активно читаются, дорогостоящие индексы могут не справиться, превратившись из помощников во вредителей. И как оказалось, старый добрый Seq Scan — метод полного сканирования таблицы — неожиданно стал в итоге самым эффективным решением в этом сценарии.
https://dzen.ru/a/aRl2JTvg0wAAnRRt
Завершение исследований по теме целесообразности и применимости использования нейросетей для экспертного анализа производительности СУБД PostgreSQL.
В эпоху повсеместного увлечения искусственным интеллектом многие пытаются использовать нейросети в качестве экспертных систем для оптимизации производительности СУБД. Эта статья — трезвый взгляд на опасность слепого доверия к AI-предсказаниям в критически важных областях управления базами данных.
На конкретном примере двух альтернативных запросов к PostgreSQL мы продемонстрируем, как нейросеть, анализируя планы выполнения и стоимость запросов, сформировала убедительную, но абсолютно ложную гипотезу о 85-95% превосходстве одного плана над другим. Реальное нагрузочное тестирование при растущей параллельной нагрузке (от 5 до 22 соединений) показало совершенно иную картину, опровергающую все теоретические выкладки.
Эта статья — предостережение для DBA и разработчиков: аппроксимация результатов и анализ стоимости планов не могут заменить реальные эксперименты в условиях, приближенных к производственным. Нейросети остаются ценным инструментом, но не истиной в последней инстанции, когда дело касается производительности PostgreSQL под нагрузкой.
https://dzen.ru/a/aRsDTai3yHRh51-_
Анонс возможной статьи .
Время, когда мы смотрели только на EXPLAIN ANALYZE, прошло. Новая реальность высоконагруженных систем диктует свои правила: разница в стоимости планов выполнения на порядок может быть статистически незначима для СУБД в целом. Почему? Всё дело в борьбе за CPU и параллелизме. Узнайте, на что стоит обращать внимание вместо бесконечной оптимизации единичных запросов.
Принято считать, что выбор между JOIN и коррелированным подзапросом — одна из ключевых задач оптимизации, способная кардинально повлиять на нагрузку базы данных. В качестве эксперимента, было проведено нагрузочное тестирование, используя Демобазу 2.0 в качестве полигона и vmstat для мониторинга изменений со стороны инфраструктуры, готовясь наглядно продемонстрировать превосходство одного подхода над другим.
Однако результаты оказались неожиданными. Исследование показало практическое отсутствие существенного влияния выбранной структуры запроса на общую производительность СУБД и сервера. В данной статье показано, что в контексте современной оптимизации запросов и мощного аппаратного обеспечения, "страшилка" о катастрофических последствиях использования коррелированных подзапросов часто преувеличена. Нагрузочное тестирование выявило, что СУБД успешно справляется с обоими типами запросов, а реальное влияние на метрики vmstat оказалось малым, что позволяет разработчикам в подобных случаях делать выбор, основываясь на читаемости кода, а не на гипотетических рисках для производительности.
https://dzen.ru/a/aRwqQMQfaV04Qh7r
Результаты новых исследований указывают на необходимость создания отдельного направления по оптимизации параллельных процессов в СУБД PostgreSQL

Казань. 21.11.2025 – По результатам серии экспериментов, проведенных в области анализа производительности СУБД PostgreSQL, был выявлен фундаментальный пробел в современных методологиях оптимизации производительности систем управления базами данных (СУБД). Установлено, что традиционные паттерны и методики оптимизации демонстрируют резкое снижение эффективности или полную неприменимость в средах с высоким уровнем параллельной обработки транзакций.

Эмпирические данные свидетельствуют о том, что при значительной конкурентной нагрузке, когда множество процессов обращаются к данным одновременно, классические подходы, такие как тонкая настройка отдельных запросов или индексация, оказываются недостаточными. Вместо ожидаемого линейного роста производительности наблюдаются нелинейные эффекты, включая интенсивную борьбу за ресурсы (contention), блокировки (locks) и деградацию общей пропускной способности системы.

На основании полученных результатов научным и инженерным сообществом был сделан вывод о назревшей необходимости системного пересмотра принципов анализа и оптимизации СУБД. Для обеспечения устойчивой работы высоконагруженных информационных систем на базе СУБД PostgreSQL требуется выделение и глубокая проработка нового специализированного подраздела, посвященного исключительно оптимизации параллельных процессов (Parallel Processes Optimization).

Введение данной дисциплины предполагает фокусировку на таких аспектах, как:

· Анализ и минимизация конфликтов блокировок на уровне строк и таблиц.
· Оптимизация работы планировщика задач и управления памятью в условиях высокой конкуренции.
· Разработка специализированных метрик для диагностики узких мест, специфичных для параллельной работы.
· Создание рекомендаций по проектированию схемы данных и логики приложений, ориентированных на параллелизм.

Этот шаг является закономерным ответом на вызовы, связанные с ростом объемов данных и требований к масштабируемости современных приложений. Новая парадигма оптимизации позволит вывести управление производительностью СУБД PostgreSQL на качественно новый уровень, обеспечивая стабильность и эффективность в высокопараллельных средах.
This media is not supported in your browser
VIEW IN TELEGRAM
Иллюстрация применения советов нейросети для оптимизации производительности СУБД PostgreSQL