Skip to content

Новости за 2026-04-11 - 2026-04-17

§ Популярные темы недели на форуме

Топик		Сообщений	Просмотров
146 (SELECT) 8 6
24 (SELECT) 4 9
197 (SELECT) 4 6

§ Авторы недели на форуме

Автор		Сообщений
pegoopik 7
rock_4 5
gennadi_s 2
Продолжить чтение "Новости за 2026-04-11 - 2026-04-17"

Погружение в события ожиданий PostgreSQL

Автор: Richard Yen, Understanding PostgreSQL Wait Events


Одним из самых полезных инструментов отладки в современном PostgreSQL является система событий ожиданий (wait events). Когда запрос замедляется или база данных становится ограниченной по процессору, естественно возникает вопрос: «Чего на самом деле ожидают сеансы?» Postgres предоставляет эту информацию через представление pg_stat_activity с помощью двух столбцов:



  • wait_event_type — тип события ожидания

  • wait_event — само событие ожидания


Эти поля показывают, на чём именно заблокирован фоновый процесс в данный момент. Среди различных типов ожидания одна категория часто вызывает путаницу:


LWLock


Если вы когда-либо видели панели мониторинга, полные ожиданий LWLock, вы не одиноки в своих сомнениях о том, что они означают и являются ли они проблемой.

Продолжить чтение "Погружение в события ожиданий PostgreSQL"

Нулевая задержка autovacuum_vacuum_cost_delay - вас сметёт лавина записи

Автор: Jeremy Schneider, Zero autovacuum_vacuum_cost_delay, Write Storms, and You


Несколько дней назад Шон Томас (Shaun Thomas) опубликовал статью в блоге pgEdge под названием «Контрольные точки, лавинная запись и вы». К сожалению, на многих корпоративных блогах больше нет возможности комментировать. Я оставил несколько комментариев в LinkedIn, но в целом позвольте мне сказать, что эта статья — отличное чтение, и я всегда рад, когда кто-то погружается в важную и обойдённую вниманием тему, даёт хорошее техническое описание и включает реальные результаты тестов для иллюстрации деталей.


У меня сегодня нет воспроизводимых реальных результатов тестов. Но у меня есть хорошая история и немного реальных данных.

Продолжить чтение "Нулевая задержка autovacuum_vacuum_cost_delay - вас сметёт лавина записи"

EXPLAIN ANALYZE в PostgreSQL - практическое руководство для веб-разработчиков

Пересказ статьи Vishu Bommoju. EXPLAIN ANALYZE in PostgreSQL — A Practical Guide for Web Developers


Большинство медленных веб-приложений тормозят не из-за плохих фреймворков или плохих серверов.
Они виснут из-за медленных запросов к базам данных.

PostgreSQL дает нам одно оружие, которое важнее почти всего остального при отладке производительности:

EXPLAIN ANALYZE

В этой статье объясняется EXPLAIN ANALYZE с точки зрения его практического использования, а не как теория из учебника.

Продолжить чтение "EXPLAIN ANALYZE в PostgreSQL - практическое руководство для веб-разработчиков"

Ошибки проектирования баз данных и как избежать и исправить их

Пересказ статьи Roxana Haidiner. Database Design Errors to Avoid & How To Fix Them


Даже сейчас, в 2025 году, при наличии мощных инструментов баз данных и облачных платформ разработчики все еще допускают элементарные ошибки при проектировании схемы. Они вызывают проблемы производительности, несогласованности данных и другие технологические проблемы.

В этой статье рассматриваются наиболее общие ошибки проектирования баз данных, способы их избежать и то, как графические инструменты типа Dbschema могут помочь создать лучший проект с самого начала:

  1. Отсутствующие внешние ключи.

  2. Отсутствующие или неверно спроектированные индексы.

  3. Использование JSON и JSONB в реляционных базах данных.

  4. Игнорирование нормализации (или её чрезмерное применение).

  5. Нечеткие соглашения об именовании.

  6. Отсутствие документации к схеме.
Продолжить чтение "Ошибки проектирования баз данных и как избежать и исправить их"

Контрольные точки, лавинная запись и вы

Автор: Shaun Thomas,Checkpoints, Write Storms, and You


Каждая база данных должна примириться с двумя неприятными истинами: память быстра, но энергозависима, а диск медленен, но долговечен. Postgres справляется с этим противоречием с помощью журнала предзаписи (Write-Ahead Log, WAL), который регистрирует каждое изменение до того, как оно произойдёт. Но WAL не может расти бесконечно. В какой-то момент Postgres должен сбросить все накопившиеся грязные страницы на диск и объявить чистую начальную точку. Этот процесс называется контрольной точкой (checkpoint), и когда он идёт не по плану, пропускная способность может упасть до нуля.

Продолжить чтение "Контрольные точки, лавинная запись и вы"

Новости за 2026-04-04 - 2026-04-10

§ Авторы недели на форуме

Автор		Сообщений
selber 6
qwrqwr 5
gennadi_s 2
_Bkmz_ 2

§ Изменения среди лидеров рейтинга

Рейтинг	Участник (решенные задачи)
15 gennadi_s (196, 197)
38 Шведа Сауля (158)
116 rock_4 (254)

Продолжить чтение "Новости за 2026-04-04 - 2026-04-10"

pg_column_size(): То, что вы видите, не всегда то, что получаете

Автор: Lætitia AVROT, pg_column_size(): What you see is not what you get


Благодаря моему коллеге Озаиру (Ozair), который прислал мне запрос в JIRA: «Мне нужно удалить этот огромный столбец, каковы будут последствия?» Мой первый вопрос был: насколько он огромен? И тут кроличья нора открылась.


Это выглядит просто. Это просто. Просто используйте административную функцию pg_column_size(). Пока у вас нет атрибутов, обработанных TOAST. Тогда становится интересно.

Продолжить чтение "pg_column_size(): То, что вы видите, не всегда то, что получаете"

Что такое collation (правило сортировки) и почему мои данные повреждены?

Автор: Shaun Thomas, What is a Collation, and Why is My Data Corrupt?



Библиотека GNU C (glibc) версии 2.28 появилась на свет 1 августа 2018 года, и с тех пор Postgres уже не был прежним. Среди множества её изменений было масштабное обновление данных локалей для сопоставления (collation), приведшее их в соответствие с изданием 4 стандарта ISO 14651 (выпуск 2016 года) и Unicode 9.0.0. Это была не мелкая правка. Это была кульминация примерно 18 лет накопленных изменений в локалях, объединённых в одном выпуске.


Никто не устраивал вечеринку.


За этим последовал один из самых значительных и коварных инцидентов с целостностью данных в истории Postgres. Индексы молча становились повреждёнными, результаты запросов менялись без предупреждения, уникальным ограничениям больше нельзя было доверять. Самая страшная часть? Нужно было знать, что искать. Postgres не жаловался. Операционная система не жаловалась. Всё выглядело нормально, ровно до тех пор, пока это не переставало быть так.


Это история о том, как обновление библиотеки тихо повредило базы данных по всему миру, что сообщество Postgres сделало в ответ и как убедиться, что это никогда не повторится с вами.

Продолжить чтение "Что такое collation (правило сортировки) и почему мои данные повреждены?"

Секционирование или шардинг в базах данных: в чем разница?

Пересказ статьи Sandeeppant. Partitioning vs. Sharding in Databases: What’s the Difference?


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

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

В этой статье мы узнаем:

  • Что такое секционирование и как это работает.

  • Что такое шардинг и чем оно отличается.

  • Практические примеры в MySQL и PostgreSQL.

  • Реальные случаи использования, которые освещают каждую технологию.

Продолжить чтение "Секционирование или шардинг в базах данных: в чем разница?"

Внутреннее устройство WAL в PostgreSQL для инженеров данных

Пересказ статьи Jonathan Duran. PostgreSQL WAL Internals for Data Engineers


Понимание PostgreSQL WAL


Недавно, работая над проектом CDC, я осознал, что никогда в действительности не находил времени, чтобы вникнуть во внутреннее устройство PostgreSQL, которое делает возможным потоковую обработку транзакций. Все мы знаем CDC (захват измененных данных) как магию, которая позволяет нам помещать изменения данных почти в реальном времени в системы типа Kafka, Snowflake или data lake - но на самом деле основную работу выполняет специальный компонент инженерных решений PostgreSQL: журнал предупреждающей записи (WAL).

Эта статья посвящена данному компоненту - что такое WAL, как он обеспечивает надежность PostgreSQL, и какую роль он играет в возможности CDC. Мы обсудим то, как PostgreSQL обрабатывает транзакции из памяти на диск, как он избегает дорогих операций ввода-вывода, и как он элегантно восстанавливает данные после сбоя. Продолжить чтение "Внутреннее устройство WAL в PostgreSQL для инженеров данных"

Нужно ли настраивать Vacuum в Postgres?

Авторы: Elizabeth Garrett Christensen и Erik Jones, Do You Need to Tune Postgres Vacuum?

Если вы работаете с Postgres какое-то время, вы, вероятно, слышали, как кто-то упоминал «очистку» (vacuuming) базы данных или использовал термин «раздувание» (bloat). Оба эти понятия звучат как рутинная и надоедливая работа, но они — просто часть жизни здоровой базы данных. В современных версиях Postgres autovacuum обычно обрабатывает эти проблемы за кулисами. Но по мере роста вашей базы данных вы можете начать задаваться вопросом: достаточно ли настроек по умолчанию? Нужно ли мне запускать очистку Postgres вручную? Или почему моя база данных внезапно занимает гораздо больше места на диске, чем должна?


Давайте углубимся в то, зачем нужна очистка, как работает autovacuum и когда вам действительно нужно вмешаться и настроить его.



Продолжить чтение "Нужно ли настраивать Vacuum в Postgres?"

Новости за 2026-03-28 - 2026-04-03

§ Новая задача от Baser и pegoopik опубликована на рейтинговом этапе под номером 24 (оценка сложности 2 балла).
Выполнены следующие переносы:
Новая задача -> 24 -> 4 -> 166 (обуч.этап).
Второй этап теперь начинается с задачи 4.


§ Популярные темы недели на форуме

Топик		Сообщений	Просмотров
193 (Learn) 7 9
140 (SELECT) 5 6
Guest's book 3 16

Продолжить чтение "Новости за 2026-03-28 - 2026-04-03"

Как быстро освоить CI/CD

Автор: Itzik Gan Baruch, How to learn CI/CD fast


Непрерывная интеграция и непрерывная доставка (CI/CD) критически важны для ускорения выпуска программного обеспечения, и начать работать с ними не так сложно, как кажется. CI/CD стали краеугольной технической архитектурой успешных внедрений DevSecOps. CI/CD имеет репутацию сложной и труднодостижимой, но это не обязательно так. Современные инструменты позволяют командам начать работу с минимальной настройкой и управлением инфраструктурой. Вот как вы можете «быстро стартовать» с CI/CD и получить быстрые, наглядные победы в производительности для вашей команды DevSecOps.

Продолжить чтение "Как быстро освоить CI/CD"

Обеспечение высокой доступности PostgreSQL с помощью Patroni и Ansible

Автор: ByteGoblin/, Setting Up PostgreSQL High Availability with Patroni and Ansible


В современном мире, управляемом данными, обеспечение высокой доступности вашей базы данных имеет решающее значение для непрерывности бизнеса. PostgreSQL — мощная открытая реляционная база данных, которую можно настроить для обеспечения высокой доступности (High Availability, HA), чтобы минимизировать простои и сохранить доступ к данным. Одно из популярных решений для достижения высокой доступности PostgreSQL — использование Patroni (шаблона для управления кластерами PostgreSQL) в сочетании с Ansible (инструментом автоматизации, который упрощает развёртывание приложений, управление конфигурацией и оркестрацию).


В этом руководстве мы шаг за шагом рассмотрим процесс настройки отказоустойчивого кластера PostgreSQL с помощью Patroni с использованием Ansible. Такая конфигурация обеспечит автоматическое переключение при сбоях, простое масштабирование и упрощённое обслуживание.

Продолжить чтение "Обеспечение высокой доступности PostgreSQL с помощью Patroni и Ansible"