Обновить
256K+

PostgreSQL *

Свободная объектно-реляционная СУБД

156,64
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Парсинг тарифов интернета и ТВ. Selenium + BeautifulSoup: трудности динамического контента и защиты от ботов

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели4K

На этапе тестирования я отобрал 6 городов (Москва, Санкт-Петербург, Новосибирск, Екатеринбург, Казань, Красноярск) и двух крупнейших провайдеров России - Ростелеком и Дом.ру. В планах масштабирование на большее количество городов и операторов.

Для парсинга тарифов у провайдеров применял связку Python + Selenium + BeautifulSoup, через хранимую процедуру складывал полученные данные в базу PostgreSQL.

Читать далее

Новости

Бинарная, тернарная или всё-таки кватернарная логика в функциях Postgres?

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели3.7K

Будучи поклонником идеи Айзека Азимова о коллаборации C/Si форм жизни, я провёл эксперимент и сгенерировал данный текст автоматически, AI агентом, по контексту, сформированному в процессе разработки новой фичи оптимизатора Postgres и расследования проблемного corner case, который время от времени завершался с runtime-ошибкой. Это первый опыт подобной совместной работы и проба пера, поэтому возможны шероховатости. Однако сама проблема и вариант решения для Postgres валидированы вручную. Любая, даже самая жёсткая критика, приветствуется.

Читать далее

Записки оптимизатора 1С (ч.16). Риски падения Postgres: потребление и высвобождение памяти процессами postgres

Время на прочтение9 мин
Охват и читатели5.9K

Статья родилась в ходе наблюдения за одной из систем на Postgres, что у нас на поддержке. Результаты наблюдения несколько удивили, поэтому делюсь, ибо причинно-следственные связи далеко не очевидны.

Триггером к изучению, можно сказать, даже к расследованию, послужило событие, когда однажды утром сервер PG завалился, потому что процессы postgres заняли всю память.

Читать далее

Если ваш админ — самурай или «обнять и плакать»

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.4K

В статье дан обзор одного из докладов конференции PgConf 2026, которая прошла в Москве 23-24 марта 2026 года, Андрея Билле, главного инженера компании Postgres Professional. Название доклада: «Если ваш админ самурай или история о восстановлении очень нужных данных».

Читать далее

Health Score для PostgreSQL: один показатель вместо 150 метрик

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.8K

Мониторинг PostgreSQL сломан: 150 метрик в pg_stat_*, и ни одна не отвечает на вопрос «база здорова?». В статье — как устроен Health Score: единое число от 0 до 100, которое агрегирует состояние базы и заменяет 30 дашбордов Grafana.

Читать далее

Книга «PostgreSQL 16. Оптимизация запросов»: учимся читать мысли планировщика

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9K

Медленный запрос — это не приговор, это задача со своим решением. Но найти его невозможно, пока планировщик PostgreSQL остаётся для вас чёрным ящиком. Книга Павла Толмачёва «PostgreSQL 16. Оптимизация запросов» даёт то, чего не хватает большинству разработчиков и администраторов: системное понимание того, как планировщик принимает решения, — и практические инструменты, чтобы направить его в нужную сторону.

Читать далее

PG_EXPECTO v.7: Анализ инцидента производительности высоконагруженной СУБД (CPU=200 RAM=1TB)

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели3.3K

Telegram: @pg_expecto

MAX: PG_EXPECTO

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

GitFlic - pg_expecto - статистический анализ производительности и ожиданий СУБД PostgreSQL

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

Результаты углублённого анализа инцидента производительности в высоконагруженной продуктивной среде PostgreSQL, в ходе которого зафиксирован переход от относительной стабильности к комплексной деградации вычислительных ресурсов, подсистемы ввода-вывода и механизмов синхронизации ядра СУБД. Применение pg_expecto с акцентом на использование как инструмента комплексного статистического анализа производительности СУБД и инфраструктуры позволило не ограничиться констатацией снижения операционной скорости, а выявить критическую конкуренцию за буферный кэш (LWLock: BufferMapping), изменения паттернов работы расширений СУБД и скрытые проблемы дисковой подсистемы.

Читать далее

Неудобные вопросы про бэкап PostgreSQL: где заканчивается СУБД и начинается оркестрация

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.5K

Как только очередной вендор обещает «убить нативные тулзы PostgreSQL», где-то устало вздыхает DBA. Попытка сделать бэкап PostgreSQL «лучше самого PostgreSQL» — это изначально неверная постановка задачи. 

Универсальный файловый агент не притворяется глубоко PostgreSQL-aware решением. Его задача в другом: взять нативные механизмы СУБД и превратить их в управляемый и наблюдаемый процесс на уровне всей инфраструктуры.

Вокруг такого подхода обычно сразу возникают неприятные, но правильные вопросы. Кто отвечает за консистентность? Где на самом деле живет PITR? Что будет, если потеряется WAL-сегмент? Можно ли восстановить одну таблицу, а не весь инстанс? И зачем вообще нужен внешний слой поверх pg_probackup, если у PostgreSQL уже есть свои зрелые инструменты?

Под катом — честный разговор о границах ответственности между PostgreSQL и внешней платформой.

Кат

Как найти подозрительные логины из разных стран за 2 часа в PostgreSQL

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.9K

В задачах на SQL особенно интересно то, что один и тот же результат часто можно получить несколькими способами – и разница между ними оказывается не только в красоте запроса, но и в его поведении на реальных данных. В этой статье – разбор прикладной задачи про поиск подозрительных логинов из разных стран в пределах двух часов: с вариантом через self join, альтернативой на оконных функциях и сравнением планов выполнения в PostgreSQL.

Разбор запроса

PostgreSQL: транзакции, блокировки и почему Serializable падает

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.4K

Несколько лет назад я делал внутренние доклады по PostgreSQL для команды — разбирали транзакции, блокировки и уровни изоляции на живых примерах. Потом ушёл на другой стек, а недавно вернулся к PostgreSQL и пересмотрел свои записи. Материал до сих пор актуален — базовые концепции не изменились. В статье: почему UPDATE из двух сессий «висит», чем Read Committed отличается от Repeatable Read на практике, почему Serializable падает даже без логического конфликта, и как VACUUM на самом деле работает с мёртвыми строками. Всё с SQL-примерами, которые можно повторить.

Читать далее

Векторный поиск в PostgreSQL: pgvector, pgvectorscale или VectorChord?

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели7.8K

Привет Хабр! Меня зовут Владимир сегодня я постараюсь исправить ошибку из моей первой статьи про векторный поиск. Основная претензия к статье (два из трех комментариев 😂) была в том, что тема сисек векторного поиска не раскрыта.

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

Читать далее

BRIN, GIN, B‑Tree: полный гайд по индексам PostgreSQL для highload

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

Индексы есть, а запросы всё равно тормозят? Или наоборот — индексов слишком много, и они только увеличивают нагрузку на запись?

Многие разработчики и администраторы баз данных попадают в ловушку: ставят B-Tree на всё подряд и надеются на лучшее. Но в highload-системах это может привести к катастрофе.

В этой статье я делюсь реальным опытом работы с PostgreSQL.

Статья будет полезна разработчикам, архитекторам и администраторам, которые хотят не просто «поставить индекс», а понять, как работает PostgreSQL под капотом и как проектировать базы данных, выдерживающие миллионы запросов в секунду.

Читать далее

Apache AGE под нагрузкой: что происходит, когда графы внутри PostgreSQL начинают по-настоящему тестировать

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели5.3K

Apache AGE добавляет графы и Cypher в PostgreSQL. Мы написали бенчмарк, прогнали три типа нагрузки и обнаружили, что поиск кратчайшего пути выдаёт 7 TPS, а вставка вершин деградирует из-за SeqScan в функции проверки существования. Один патч — и TPS вырос в 15 раз. Рассказываем, как до этого докопались.

Читать далее

Ближайшие события

Зачем вообще нужен sa-tests-db

Время на прочтение4 мин
Охват и читатели7.2K

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

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

В контексте ГОСТ Р 71207-2024 это особенно важно. Там недостаточно сказать: «в среднем по языку результат хороший». Смотреть нужно по типам ошибок. Если по какому-то типу ошибок анализатор даёт слишком много ложных срабатываний или слишком много пропусков, это уже проблема, даже если общая картинка выглядит прилично.

Читать далее

Распределенная блокировка RedLock.NET. Просто и со вкусом

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.2K

В современном мире enterprise-разработки часто встречается необходимость реализации распределённых блокировок. Недавно у меня как раз возникла необходимость реализации распределённой блокировки, и я применил пакет RedLock.NET, о чём и хочу рассказать.

Однако когда я писал статью, как-то «слово за слово», она вылилась в сравнительный анализ RedLock.NET и других решений, которые я тоже рассматривал. Мне кажется, все описанные ниже очевидные и не очень решения будет вспомнить вполне уместно. Надеюсь, получится не так уж длинно и будет полезно для читателей.

Под катом вы не найдете откровений, но найдете размышления (для кого-то, возможно, очевидные) разработчика над задачей, которую все вроде знают, как реализовывать, но когда нужно реализовать, то все опять «подзабыли».

Читать далее

Каскадная репликация в BiHA: строим геораспределённые кластеры правильно

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.1K

Если вы администрируете Postgres Pro Enterprise и ваша инфраструктура охватывает несколько дата-центров, вы наверняка сталкивались с одной и той же проблемой: репликация начинает «есть» межцодовый канал и нагружать основной сервер. В новой версии BiHA появилось решение — каскадная репликация. Рассказываем, как она работает и когда стоит использовать её.

Читать далее

Идемпотентность в backend: как перестать дублировать операции

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели7.2K

Вы когда-нибудь получали два списания с карты за одну покупку? Или видели дважды созданный заказ после одного клика? Это не баг платёжной системы - это баг вашего кода. Имя этому баг - отсутствие идемпотентности.

Читать далее

Postgresso #2 (87)

Время на прочтение17 мин
Охват и читатели5.8K

На разных континентах и субконтинентах

В расписании конференции PGConf.Russia, к которой мы ещё, конечно, вернёмся в разделе Конференции, моё внимание привлёк вот такой доклад:

YMatrix Domino: Design Considerations, Trade-offs, and Implementation of In-Database Stream Processing - видимо, игрек впереди названия как раз в честь Яо Яндуна (Yandong Yao), гендира и сооснователя компании Ymatrix (также известной как Beijing Siwei Zongheng Data Technology Co., Ltd. или «Сывэй Цзунхэн»). Не думаю, что многим читателям этих обзоров она известна хотя бы по одному из этих названий.

Он экс-руководитель пекинского R&D-центра Greenplum.

Оказывается, на хабре есть статья о YMatrix:

Читать далее

По следам конференции PG BootСamp Russia 2026, прошедшей 19 марта

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели5.8K

Прошла 5 ежегодная конференция PG BootСamp Russia 2026. В этот раз она проводилась в Москве 19 марта 2026 года. 563 оффлайн участника и порядка 1300 онлайн. Первая конференция прошла в 2023 году и дальше проводилась в разных городах. В статье - репортаж с конференции и краткий обзор докладов

Читать далее

Я написал кэш для API на Go за 120 строк кода — и PostgreSQL перестал быть узким местом (ускорение в 7 раз)

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели17K

Если API начинает тормозить, первое решение обычно очевидно — добавить Redis. Но иногда оказывается, что проблема гораздо проще. В одном из сервисов PostgreSQL начал упираться в повторяющиеся запросы. Одни и те же данные запрашивались тысячами клиентов. Практически каждый HTTP-запрос заканчивался одинаковым SQL-запросом. Любопытство победило — вместо готового решения был написан небольшой кэш прямо внутри сервиса. На это ушло примерно полчаса. Результат оказался неожиданным: некоторые эндпоинты ускорились почти в 7 раз. Вот, почему это произошло и как работает такая схема.

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