PostgreSQL

Материал из Энциклопедия интернет-маркетинга MarketWiki

PostgreSQL - это мощная объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом, разрабатываемая с 1986 года в Калифорнийском университете в Беркли. PostgreSQL использует и расширяет язык SQL в сочетании с множеством функций, обеспечивающих безопасное хранение и масштабирование самых сложных рабочих нагрузок с данными .

В интернет-маркетинге PostgreSQL применяется для хранения и анализа больших объёмов данных о клиентах, транзакциях, поведении пользователей и результатах рекламных кампаний. Благодаря высокой надёжности и расширяемости, PostgreSQL используют такие компании, как Instagram, Netflix, Apple (iTunes) и многие другие .

История и философия

[править]

PostgreSQL ведёт свою историю с 1986 года, когда в рамках проекта POSTGRES в Калифорнийском университете в Беркли была заложена основа будущей системы. За почти 40 лет активного развития платформа завоевала репутацию благодаря проверенной архитектуре, надёжности, целостности данных и мощному набору функций .

Ключевая философия PostgreSQL заключается в соответствии стандартам и расширяемости. Система пытается соответствовать стандарту SQL везде, где это не противоречит традиционным функциям. Начиная с версии 18 (сентябрь 2025 года), PostgreSQL соответствует как минимум 170 из 177 обязательных функций для SQL:2023 Core conformance .

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

[править]

Типы данных

[править]

PostgreSQL поддерживает широкий спектр типов данных:

  • Примитивные: Integer, Numeric, String, Boolean
  • Структурированные: Date/Time, Array, Range / Multirange, UUID
  • Документные: JSON/JSONB, XML, Key-value (Hstore)
  • Геометрические: Point, Line, Circle, Polygon
  • Пользовательские: составные типы, перечисления (enum)

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

Целостность данных

[править]
  • Первичные и внешние ключи
  • Ограничения UNIQUE, NOT NULL
  • Ограничения-проверки (CHECK)
  • Эксклюзивные ограничения (Exclusion Constraints)
  • Явные и рекомендательные блокировки

Производительность и конкурентность

[править]
  • Полное соответствие ACID с 2001 года
  • Многоверсионность (MVCC) для параллельного доступа
  • Все уровни изоляции транзакций, включая Serializable
  • Развитая система индексов: B-tree, GiST, SP-GiST, GIN, BRIN
  • Параллельное выполнение запросов
  • JIT-компиляция выражений
  • Асинхронный ввод-вывод (AIO) с версии 18

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

[править]

PostgreSQL считается самой расширяемой СУБД благодаря архитектуре, позволяющей:

  • Создавать собственные типы данных
  • Определять новые операторы и функции
  • Писать код на различных языках: PL/pgSQL, Perl, Python, Tcl, Java, JavaScript (V8), R, Lua, Rust
  • Создавать индексы с собственными методами доступа

Надёжность и восстановление

[править]
  • Write-Ahead Logging (WAL) - журнал предзаписи
  • Репликация: асинхронная, синхронная, логическая
  • Point-in-time recovery (PITR)
  • Активные standby-серверы
  • Табличные пространства (tablespaces)

Расширения PostgreSQL

[править]

Благодаря расширяемой архитектуре, вокруг PostgreSQL сформировалась богатая экосистема расширений:

  • PostGIS - добавляет поддержку географических объектов, превращая PostgreSQL в полноценную геоинформационную систему (GIS)
  • pgvector - позволяет хранить векторные эмбеддинги рядом с основными данными и выполнять поиск по семантической близости
  • Foreign Data Wrappers - подключают внешние источники данных через стандартный SQL-интерфейс

Сравнение с MySQL

[править]

PostgreSQL и MySQL - 2 самые популярные открытые СУБД, но у них разные сильные стороны:

  • PostgreSQL лучше подходит для сложных аналитических запросов, обработки геоданных и сценариев, требующих строгой целостности данных
  • PostgreSQL предлагает более богатую поддержку стандартов SQL и расширяемость
  • PostgreSQL эффективнее работает с очень большими объёмами данных и сложными типами (JSONB, массивы, геометрия)

Технические ограничения

[править]
Параметр Значение
Максимальный размер базы данных Не ограничен
Максимальный размер таблицы 32 TB
Максимальный размер строки 1.6 TB
Максимальный размер поля 1 GB
Максимальное кол-во столбцов в таблице 250-1600 в зависимости от типа
Максимальное кол-во индексов в таблице Не ограничено

Связанные термины

[править]