System Design Space
Граф знанийНастройки

Обновлено: 25 марта 2026 г. в 02:00

PostgreSQL: история и архитектура

medium

История PostgreSQL, ключевые особенности (MVCC, WAL, расширяемость), архитектура и сравнение с MySQL.

PostgreSQL так часто оказывается в центре системы, что его легко начать воспринимать как скучный дефолт. Эта глава полезна тем, что возвращает уважение к причинам, по которым он там оказывается.

В реальной работе она помогает говорить о PostgreSQL через MVCC, WAL, расширяемость, индексы и планы выполнения, то есть через те свойства, которые действительно определяют надежность OLTP-контура, а не только через знакомый SQL-синтаксис.

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

Практическая польза главы

Транзакционное ядро

Используйте PostgreSQL как надежный OLTP-центр, когда важны ACID, сложные запросы и предсказуемая консистентность.

Индексы и планировщик

Проектируйте схему вместе с индексной стратегией и оценкой планов, а не только по ER-диаграмме.

Эксплуатационная стабильность

Закладывайте autovacuum, bloat-контроль, WAL-архивацию и репликацию как часть базовой архитектуры.

Interview articulation

Обосновывайте выбор Postgres через integrity, query power и известные операционные компромиссы.

Источник

PostgreSQL

История, MVCC, репликация, расширяемость и экосистема PostgreSQL.

Перейти на сайт

PostgreSQL - свободная open-source объектно-реляционная СУБД с фокусом на расширяемость, богатые типы данных и надежную работу с транзакциями.

История: ключевые вехи

1982-1994

Ingres -> POSTGRES

PostgreSQL эволюционировала из проекта Ingres в UC Berkeley и системы POSTGRES.

1994-1996

Postgres95

Postgres95 добавила SQL-интерпретатор и дала базе современное направление.

1996-1997

PostgreSQL

Проект был переименован в PostgreSQL, а релиз 6.0 вышел в январе 1997.

2005

8.0: Windows и PITR

Ветка 8.0 принесла нативную поддержку Windows и point-in-time recovery.

2010

9.0: streaming replication

Появляется потоковая репликация, что делает HA-сценарии значительно практичнее.

2017

10: логическая репликация

Новая схема версионирования и встроенная logical replication расширяют сценарии миграции и интеграций.

2023

16: зрелая современная ветка

Серия 14-16 усиливает производительность, параллелизм и работу репликации на больших нагрузках.

2024

17: релиз с акцентом на vacuum и logical replication

PostgreSQL 17 улучшает throughput и планирование, заметно снижает memory footprint VACUUM и упрощает HA-сценарии с logical replication.

Специфика PostgreSQL

Object-relational DBMS

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

MVCC и уровни изоляции

MVCC дает снимки данных транзакциям и поддерживает serializable snapshot isolation.

Богатые типы и индексы

JSON/JSONB, массивы, диапазоны, расширяемые типы и индексы (GiST, GIN, SP-GiST, BRIN).

Репликация на базе WAL

Встроенная репликация использует WAL и поддерживает async и synchronous режимы.

Архитектура PostgreSQL по слоям

Архитектура показывает слои: от драйверов и планировщика запросов до MVCC, WAL и репликации.

Клиенты и протокол
libpqBinary protocolDriversAuth/TLS
Переход между слоями
SQL слой
ParserPlannerExecutorCatalog metadata
Переход между слоями
MVCC и транзакции
SnapshotsIsolation levelsSerializable (SSI)
Переход между слоями
Хранилище и индексы
HeapB-treeGIN/GiST/BRINWAL
Переход между слоями
Репликация
WAL shippingAsyncSyncStandby
Переход между слоями
OS + железо
FilesystemDiskCPU/RAMNetwork

Ключевые особенности

PostgreSQL известна сильной расширяемостью, богатой системой типов и широкой экосистемой расширений.

Расширяемость

User-defined typesProcedural languagesForeign data wrappers

Богатые типы данных

JSONBArraysRange typesPostGIS types

Экосистема

TimescaleDBGreenplumDerivatives

DDL vs DML: как проходит запрос

DDL меняет структуру и метаданные, DML работает с данными. Ниже - визуализация ключевых этапов для обоих типов запросов.

Как запрос проходит через PostgreSQL

Сравнение цепочки для DDL (структура) и DML (данные)

Интерактивный прогонШаг 1/5

Активный шаг

1. Parse + plan

Планировщик выбирает оптимальный план и индексы.

Работа с данными

  • DML работает с данными и индексами, не меняя схему.
  • MVCC обеспечивает конкурентный доступ без блокировки чтения.
  • Репликация зависит от режима WAL и настроек.
Операции со строкамиWALMVCC

Источник

MySQL

Лицензия, LAMP-стек и изменения вокруг MySQL.

Перейти на сайт

PostgreSQL vs MySQL

Модель данных

PostgreSQL: Object-relational, расширяемые типы и функции.

MySQL: Реляционная СУБД, часто используется в LAMP-стеке.

Лицензия и управление

PostgreSQL: Permissive PostgreSQL License и развитие через PGDG.

MySQL: GPL + коммерческие лицензии; владение через Sun и Oracle.

Конкурентность и целостность

PostgreSQL: MVCC и serializable snapshot isolation.

MySQL: InnoDB - дефолтный движок с транзакциями и внешними ключами.

Экосистема

PostgreSQL: Экосистема расширений и производных решений.

MySQL: Сильная web-экосистема и богатая история использования в LAMP.

Почему PostgreSQL часто выбирают вместо MySQL

Практическая интерпретация на основе свойств PostgreSQL:

  • Расширяемая архитектура и богатый набор типов данных делают PostgreSQL удобной для сложных доменных моделей.
  • MVCC и развитые уровни изоляции упрощают конкурентные сценарии при высоких нагрузках.
  • Встроенная репликация на базе WAL дает понятный путь к масштабированию чтений.
  • Permissive license и сильная экосистема производных решений стимулируют выбор PostgreSQL.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки