RU

PostgreSQL Recovery на пальцах: WAL, base_backup и PITR в Docker-compose

В этой статье будет разбираться резервное копирование и восстановление PostgreSQL. Покажу все на небольшом практическом docker-compose стенде. Я спе…

postgresqlбазы данныхdevopsсистемное администрированиебэкендбэкапвосстановление данныхdocker-composesqlсервер
Habr
RU

Индекс как алфавитный указатель: как база ищет и почему иногда не находит

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

postgresqlиндексыexplain analyzeb-treeсоставной индексплан запросаseq scanindex scanоптимизация запросовsql
Habr
RU

За полгода мы проанализировали 7,79 млн SQL-запросов: какие СУБД и версии встречались чаще

За первое полугодие 2026 года мы проанализировали 7,79 млн SQL-запросов с нескольких тысяч серверов. В статье описали распределение по семействам СУ…

database optimizationquery optimizationоптимизация запросовmysqlpostgresqlmariadbmysql performancepostgresql performance
Habr
RU

Свежий взгляд на бронирование тайм‑слотов, или как я это сделал на Spring boot, используя пессимистические блокировки

Здравствуйте, Хабровчане! Меня зовут Дмитрий, я бэкенд разработчик Java. Недавно я наткнулся на задачу, которая сначала показалась мне копеечной, а…

javaspring bootpostgresqlbackendarchitectureslots apib2bsaas
Habr
RU

GFM: децентрализованная альтернатива Patroni и etcd для PostgreSQL на базе P2P-меша с In-Memory управлением

Если вы когда-нибудь настраивали Patroni, то знаете это чувство: чтобы просто следить за одной базой, вам нужно построить вокруг неё целый город. Ту…

postgresqletcdgorgonapatronisqlhigh availability
Habr
RU

Все пять safety-свойств Raft прошли. Две реплики разошлись

Реализация Raft на TypeScript под сидированной симуляцией: каждый тик, каждая задержка сообщения и каждое падение узла берутся из сида. На двадцать…

raftконсенсусдетерминированное тестированиемутационное тестированиеmodel checkingлинеаризуемостьизоляция транзакцийpostgresqltypescript.
Habr
RU

Почему тип `numeric` в PostgreSQL такой медленный?

Три независимые попытки сделать для PostgreSQL быстрый точный десятичный тип расширением заглохли. Но не потому, что не получилось ускорить арифмети…

postgresqlnumericdecimalduckdbтипы данныхпроизводительностьвнутренности СУБДolap
Habr
RU

River OSS и Kafka: почему transactional outbox не гарантирует порядок событий агрегата

Меня зовут Василий Миловидов, я системный архитектор в крупной компании. Мы строим обмен между сервисами на событиях: сервис меняет агрега…

transactional outboxriverevent-drivendistributed systemsgolangpostgresql
Habr
RU

Часть 1. Как я делаю backend для браузерной игры три в ряд: server-driven контент, транзакции и идемпотентность

Часть 1. Как я делаю backend для браузерной игры три в ряд: server-driven персонажи и способности, общий контракт клиента и сервера, версионирование…

backendfrontendprismapostgresqltypescriptяндекс.игрыgamedevgame developmentgame engine
Habr
RU

24 миллиона оценок внешности: что мы нашли в собственной базе за 12 лет

Двенадцать лет незнакомые люди ставили друг другу баллы от 1 до 10. В базе накопилось 24 миллиона оценок от 110 тысяч человек из 232 стран. Мы залез…

анализ данныхpostgresqlвизуализация данныхстатистикаповеденческая аналитика
Habr
RU

Устанавливаем Digital Q.DataBase 18.2 на РЕД ОС 8: PostgreSQL, MS SQL и Oracle в одной СУБД

Привет, Хабр! Меня зовут Жуйков Андрей, занимаюсь развитием и продвижением СУБД Digital Q.DataBase. Сегодня для многих организаций импортозамещения…

субдsqlpostgresqlбаза данныххранение данныхit-инфраструктураbig datadigital q.database
Habr
RU

Гадкий NULL

Если вы пишете SQL-запросы, то наверняка сталкивались с ситуацией, когда данные исчезают, отчеты не сходятся, а бизнес теряет деньги. И виновник это…

NeoflexNULLСУБДSQLpostgresql
Habr