Возможности PostgreSQL

PostgreSQL – одна из самых популярных свободно распространяемых систем управления базами данных. Пожалуй, из СУБД с открытым исходных ходом только её и MySQL можно считать полноценными альтернативами коммерческим программным продуктам этого типа. В чём же причина этой популярности? Какие возможности она предоставляет? Полный их перечень и подробное описание можно прочесть в официальной документации, однако она насчитывает свыше 1300 страниц, так что найти в ней нужную информацию может быть затруднительно. Поэтому для этой статьи мы подготовили краткий их список.

  • MVCC (Multiversion Concurrency Control). В отличие от обычных баз данных, которые используют блокировки, PostgreSQL поддерживает многоверсионность. Это значит, что каждая транзакция видит ту версию БД, которая существовала на момент её начала, даже если состояние базы с тех пор уже успело измениться. Таким образом, индивидуальные транзакции находятся в изоляции друг от друга и защищены от несогласованных изменений, которые могли бы быть произведены другими транзакциями. В традиционных БД чтение и запись могут блокировать друг друга – здесь такого никогда не происходит;
  • Write Ahead Logging (WAL) – система протоколирования транзакций, обеспечивающая лёгкое и удобное восстановление после программных и аппаратных сбоев. Этот подход означает, что все изменения сначала заносятся в журнал, который записывается в стабильное хранилище, и только потом вносятся собственно в БД. Это гарантирует возможность восстановить её с помощью логов;
  • Point in Time Recovery (PITR) – функция восстановления состояния БД на конкретный момент в прошлом с использованием WAL;
  • Отсутствие ограничений на максимальный объём баз данных и количество записей и индексов в таблице;
  • Пользователь может писать функции как на чистом SQL, так и на других языках программирования;
  • Постгрес поддерживает стандартные (B-tree, hash, R-tree, GiST), частичные и функциональные индексы. При необходимости пользователь может создавать и собственные индексы, хотя это и довольно сложная задача;
  • Богатые возможности расширяемости. Это означает, что систему можно настраивать и дополнять для собственных нужд практически в любой области. Пользователь может определять собственные функции, операторы, агрегаты, типы данных, процедурные языки, домены и индексы.

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