Для чего нужна PostgreSQL

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

В каких случаях оправдано использование PostgreSQL

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

Среди других ситуаций, в которых имеет смысл использовать именно Постгрес, можно выделить следующие:

  • Нескольким пользователям требуется одновременно подключаться к БД. Механизм MVCC (Multiversion Concurrency Control) позволяет одновременно вносить изменения с нескольких точек доступа. Каждый пользователь работает с отдельным «снимком» БД, в который и вносит изменения, остающиеся скрытыми от других участников процесса до окончательной фиксации транзакции. Это позволяет избежать как конфликтов, так и потребности в блокировке чтения/записи;
  • Важна отказоустойчивость и целостность данных. Система MVCC обеспечивает повышенную надёжность и безопасность, а информация хорошо мало подвержена потерям, ошибкам и сбоям;
  • Необходима абсолютная стабильность. Постгрес хорошо известна качеством отладки кода. В этом отношении она лучше большинства других бесплатных программных продуктов, новые версии которых обычно изобилуют багами. Здесь же очередная версия выпускается только после исчерпывающей проверки, а по статистике в исходном коде бывает не более одной ошибки на 39000 строк. Для сравнения – это впятеро меньше, чем у MySQL;
  • Предполагается работа с большими объёмами информации. Как правило, СУБД имеют ограничения на максимальный объём БД и количество записей в ней. Здесь таких лимитов нет – ограничен только объём отдельных записей, но и он достаточно велик, чтобы хранить практически любую информацию;

В каких случаях PostgreSQL – не лучший выбор

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