Pull to refresh
-14
-26.9
Ринат@pg_expecto

PostgreSQL Performance Engineer

Send message

Не апгрейд, а оптимизация: комплексный тюнинг инфраструктуры подарил PostgreSQL 65% производительности

Level of difficultyHard
Reading time5 min
Reach and readers6.4K

Часто при замедлении работы базы данных первым решением кажется увеличение вычислительных ресурсов: больше ядер, памяти, быстрые диски. Однако существует и другой, более экономичный путь — заглянуть глубже, на уровень операционной системы, управляющей этими ресурсами.

Данная статья — это практический разбор реального кейса, где скрупулёзная настройка параметров подсистемы ввода-вывода, кэширования и планировщика задач Linux позволила поднять производительность PostgreSQL на впечатляющие 65%. Без замены железа, без увеличения лицензий, только за счёт грамотной оптимизации «фундамента», на котором работает СУБД. 

GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Читать далее

Анализ влияния checkpoint_timeout на производительность СУБД PostgreSQL

Level of difficultyHard
Reading time8 min
Reach and readers7.9K

В мире PostgreSQL, как и в автоспорте, не существует единой идеальной стратегии для всех трасс. Выбор интервала контрольных точек (checkpoint_timeout) — это пит-стоп: можно заезжать часто для максимальной скорости на прямых, но рискуя потерять время на самом заезде, или реже — для стабильного и предсказуемого ритма всей гонки. Всё зависит от типа «трассы» — характера нагрузки на вашу базу данных.

GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Глоссарий терминов | Postgres DBA | Дзен

Читать далее

Отчет по анализу публикаций на Хабре о производительности СУБД PostgreSQL (июнь – декабрь 2025)

Level of difficultyEasy
Reading time5 min
Reach and readers5.4K

Статья, включая иллюстрацию, сгенерирована нейросетью DeepSeek.

Авторский только промпт:

Проанализируй публикации на Хабре по теме производительности СУБД PostgreSQL за последние полгода . Подготовь отчет о наиболее интересных публикациях и общем интересе читателей Хабра к теме производительности СУБД PostgreSQL.

Если интересно, читайте.

PostgreSQL: shared_buffers = 25% RAM?

Level of difficultyMedium
Reading time3 min
Reach and readers9.7K

На основе методологии и результатов, представленных в статье "PG_EXPECTO: Анализ влияния размера shared_buffers на производительность СУБД PostgreSQL", можно сформулировать и обосновать следующую гипотезу:

Классическая эмпирическая рекомендация "shared_buffers = 25% от объёма оперативной памяти" не подтверждается строгим экспериментом и может считаться научно необоснованной. Основная причина снижения производительности СУБД PostgreSQL при высоком значении hit ratio (доли чтений из кэша) связана с увеличением нагрузки на процессор (CPU) для управления большим буферным пулом и конкуренцией за доступ к данным в памяти, а не с гипотетическими "накладными расходами" на обслуживание самого shared_buffers.

Читать далее

PG_EXPECTO: Анализ влияния размера shared_buffers на производительность СУБД PostgreSQL

Level of difficultyHard
Reading time24 min
Reach and readers8.4K

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

Задача

Используя классическую задачу о влиянии значения параметра shared_buffers на производительность СУБД, подготовить и протестировать общую методологию проведения экспериментов по анализу производительности СУБД PostgerSQL c использованием нейросети для анализа статистических данных, собранных комплексом pg_expecto в ходе нагрузочного тестирования.

Читать далее

Оптимизация пагинации в PostgreSQL: Как настройка work_mem превратила ROW_NUMBER в лидера производительности

Level of difficultyHard
Reading time17 min
Reach and readers7.2K

В мире высоконагруженных баз данных выбор метода пагинации может стать решающим фактором для производительности системы. Эксперимент, проведённый с двумя подходами — классическим ROW_NUMBER и отложенным соединением (Deferred Join) — показал, что даже архитектурно более совершенный метод не гарантирует победы без тонкой настройки СУБД. Исследование раскрывает, как правильная конфигурация памяти PostgreSQL перевесила преимущества Deferred Join и позволила ROW_NUMBER добиться превосходства на параллельной нагрузке .

Пример использования нейросети для анализа

Прогноз нейросети — Когда теория проигрывает практике или почему ROW_NUMBER() не стал королём пагинации PostgreSQL

Level of difficultyHard
Reading time16 min
Reach and readers7.6K

Исследование сравнило два метода пагинации — ROW_NUMBER() и Deferred Join — под нагрузкой до 22 параллельных сессий. Прогноз нейросети предсказывал преимущество ROW_NUMBER(), но реальные тесты показали обратное: Deferred Join оказался на 29,3% быстрее, создавал на 70% меньше ожиданий и лучше масштабировался. Этот кейс демонстрирует, как теоретические оптимизации могут не учитывать реальные ограничения СУБД: работу с памятью, параллелизм и стоимость операций ввода-вывода.

Читать далее

Оптимизация пагинации в PostgreSQL: сравнительный анализ производительности методов выборки случайных данных

Level of difficultyHard
Reading time8 min
Reach and readers6.5K

Для высоконагруженных систем выбор оптимального метода пагинации становится критически важным для производительности приложений. Данное исследование представляет собой сравнительный анализ трех основных подходов к пагинации в PostgreSQL при работе с таблицей в 15+ миллионов записей. Результаты не просто демонстрируют количественные различия в скорости выполнения запросов, но и раскрывают фундаментальные различия в использовании системных ресурсов, что позволяет принимать архитектурные решения на основе данных, а не предположений.

Читать далее

Пагинация в PostgreSQL: ROW_NUMBER убивает производительность

Level of difficultyHard
Reading time19 min
Reach and readers11K

Эффективная пагинация — не просто удобство, а необходимость. Анализ нагрузочного тестирования, метрик системы и планов выполнения показывает, что выбор неправильного метода может замедлить приложение в 15 раз, создавая катастрофическую нагрузку на СУБД. Одни методы работают с молниеносной скоростью, а другие превращаются в «убийц производительности».

Читать далее

Итоги анализа вариантов оптимизации ресурсоёмкого SQL-запроса

Level of difficultyMedium
Reading time12 min
Reach and readers6.3K

Исследовать и определить наиболее эффективный SQL-запрос, позволяющий получить информацию для анализа:

Неполных бронирований

Билетов без привязки к рейсам

Рейсов без процедуры посадки

Статистики по незавершённым операциям

Читать далее

Анализ вариантов оптимизации ресурсоёмкого SQL-запроса: Вариант-5 «Условие WHERE»

Level of difficultyHard
Reading time12 min
Reach and readers6.6K

Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы?

Эксперимент-5 : Условие WHERE

Читать далее

Анализ вариантов оптимизации ресурсоёмкого SQL-запроса: Вариант-4 «Временная таблица»

Level of difficultyHard
Reading time16 min
Reach and readers7.3K

Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы?

Эксперимент-4 : Временная таблица

Читать далее

Анализ вариантов оптимизации ресурсоёмкого SQL-запроса: Вариант-3 «Частичная агрегация»

Level of difficultyHard
Reading time15 min
Reach and readers7K

Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы?

Эксперимент-3 : Частичная агрегация

Читать далее

Анализ вариантов оптимизации ресурсоёмкого SQL-запроса: Вариант-2 «TUNING»

Level of difficultyHard
Reading time15 min
Reach and readers6.2K

Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы?

Эксперимент-2 : Оптимизация структуры запроса

Читать далее

Анализ вариантов оптимизации ресурсоёмкого SQL-запроса: Вариант-1 «EXISTS»

Level of difficultyHard
Reading time13 min
Reach and readers12K

Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы?

Эксперимент-1 : Использование EXISTS

Читать далее

Особенности расчета коэффициента корреляции в PostgreSQL

Level of difficultyHard
Reading time6 min
Reach and readers7.2K

Для расчета коэффициента корреляции в PostgreSQL используется агрегатная функция corr

Однако, в ходе экспериментов была обнаружена интересная особенность функции corr — несовпадение результата с вычислениями в Excel.

Читать далее

PostgreSQL Antipatterns? Анализ эффективности замены агрегатной функции MAX на ARRAY

Level of difficultyHard
Reading time16 min
Reach and readers7.3K

Статья на Хабре "PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение" послужила отправной точкой для данного исследования. После ее изучения возникла гипотеза о возможности значительного повышения производительности PostgreSQL через замену агрегатных функций на конструкции ARRAY.

Читать далее

pg_expecto + Демобаза 2.0: тестовый стенд для экспериментов с СУБД PostgreSQL

Level of difficultyEasy
Reading time9 min
Reach and readers6.9K

 Нагрузочное тестирование — это не просто «нагрузить систему до падения». Это точный инструмент для поиска причинно-следственных связей. В этой статье описан пример использования связки из Демобазы 2.0 и комплекса pg_expecto, чтобы провести контролируемый эксперимент. Изменим один SQL-запрос, запустим тест и проанализируем, как это изменение отразилось на производительности СУБД и показателях инфраструктуры.

ℹ️ Демобаза 2.0

Демобаза 2.0 для PostgreSQL / Хабр

Читать далее

Нейросеть против PostgreSQL: системные ошибки AI в прогнозировании производительности под нагрузкой

Level of difficultyHard
Reading time3 min
Reach and readers7.2K

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

Читать далее

ИИ как опасный советчик: Почему нейросетям нельзя доверять настройку производительности PostgreSQL

Level of difficultyHard
Reading time4 min
Reach and readers6.1K

В статье проводится сравнительный анализ эффективности использования оператора JOIN и коррелированного подзапроса в СУБД PostgreSQL в условиях высокой параллельной нагрузки. На основе экспериментальных данных опровергаются универсальные рекомендации систем искусственного интеллекта.

Читать далее
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Администратор баз данных
Ведущий
SQL
PostgreSQL
Базы данных
Linux
Bash