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