Реляционная модель: таблицы, ключи, constraints, когда гнуть правила
Почему модель Кодда 1970 года всё ещё выигрывает по integrity, что покупает каждая нормальная форма, где расходятся surrogate vs natural keys, когда JSONB и массивы бьют side-таблицу, и почему некоторые hyperscale-конторы отключают foreign keys.
Индексы в PostgreSQL: B-tree, GIN, GiST, BRIN и цена неправильного
Как устроены индексы Postgres (B-tree, GIN, GiST, BRIN, SP-GiST, hash), почему leading-column rule — самый нарушаемый принцип в продакшне, как partial / expression / covering индексы меняют cost-модель и когда добавлять или дропать индекс.
Планы выполнения: как PostgreSQL ищет и выполняет ваш запрос
Как планировщик PostgreSQL читает статистику для выбора сканирований и соединений, почему ошибки оценки строк каскадируются в плохие планы и как зафиксировать стабильный план под нагрузкой.
Пулинг соединений в PostgreSQL: режимы PgBouncer, математика размера и сбои от исчерпания пула
Почему backend Postgres тяжёлый, как режимы session/transaction/statement PgBouncer меняют контракт, математика размера пула, ловушка prepared statement + transaction mode (фикс PgBouncer 1.21+), и ландшафт Supavisor/Odyssey/PgCat.
Миграции схемы в PostgreSQL: блокировки, expand-contract и режим отказа очереди блокировок
Почему ALTER TABLE за долгим запросом замораживает базу, как разбить каждое ломающее изменение на безопасные фазы expand-contract и как выглядят девять режимов отказа миграций в продакшне.
Шардирование PostgreSQL: ключи шардирования, режим hot-shard, partitioning против Citus
Когда одного Postgres мало — выбор ключа шардирования, стратегии hash/range/list/directory, declarative partitioning против Citus, ко-локация, режим hot-shard, online resharding, schema-based sharding.
Один продукт проходит путь от однотабличного MVP до кластера Citus на миллиард строк через семь моментов отказа базы — схема, индексы, статистика, bloat, пулинг, миграции, шардинг — каждый назван, упорядочен и готов к триажу.