Что такое PostgreSQL

Тема дорожной карты · PostgreSQL

PostgreSQL — мощная объектно-реляционная СУБД с открытым исходным кодом, насчитывающая более 35 лет активной разработки и известная строгим соответствием стандартам, расширяемостью, ACID-совместимыми транзакциями и богатым набором функций, охватывающим как традиционное администрирование реляционных баз данных, так и современные рабочие нагрузки. PostgreSQL поддерживает расширенные типы данных — JSONB, массивы, диапазоны, геометрические типы и полнотекстовый поиск, — а также сложные методы индексирования: B-tree, GIN, GiST, BRIN и хэш-индексы, что делает его пригодным для широкого круга задач — от транзакционных OLTP-систем до аналитических запросов. База данных полностью открыта под лицензией PostgreSQL (разрешительная лицензия в стиле BSD) и поддерживается PostgreSQL Global Development Group; ежегодные выпуски основных версий приносят существенные улучшения производительности, новые SQL-функции и расширенные возможности репликации. Расширяемость PostgreSQL через загружаемые модули и расширения — такие как PostGIS для геопространственных данных, pg_stat_statements для мониторинга запросов и TimescaleDB для временны́х рядов — делает его одной из наиболее универсальных платформ в современном администрировании баз данных. Понимание того, что такое PostgreSQL и чем он отличается от других реляционных СУБД, — необходимый первый шаг для любого разработчика или администратора баз данных, работающего с этой системой.

Как это работает

Что такое PostgreSQL начинается с понимания PostgreSQL как закалённой в бою open-source RDBMS со строгим следованием SQL-стандартам, MVCC-конкурентностью, ACID-транзакциями и богатой типизацией (массивы, JSONB, ranges, геометрические типы, пользовательские через расширения). Кластер Postgres — один работающий postmaster + per-connection backend-процессы; БД живут внутри одного кластера; схемы внутри БД; таблицы, view, sequences внутри схем. Wire-протокол стабилен и задокументирован.

Когда применять

PostgreSQL — дефолтная реляционная БД для любого нового проекта: JSON + реляционка + full-text + расширения в одном движке, MIT-подобная лицензия, без vendor lock-in. MySQL — только если унаследовали деплой. SQLite — когда реально single-host + низкая конкурентность. Managed Postgres (Yandex Managed PostgreSQL, RDS, Cloud SQL) — когда бекапы + HA + мониторинг начинают есть инженерное время.

Типичные ошибки

Ловушки Что такое PostgreSQL: расчёт, что Postgres "сам масштабируется" без тюнинга (shared_buffers, work_mem, max_connections дефолты крошечные); MySQL-измы (LIMIT m, n нестандартен — используйте LIMIT n OFFSET m); пустой template1-extensions (CREATE EXTENSION per-DB); не выучили EXPLAIN (ответ на большинство "почему медленно" — в плане). Прочтите официальный туториал от и до.

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…