Что это
PostgreSQL — объектно-реляционная СУБД, ориентированная на сложные запросы и расширяемость. MySQL — реляционная СУБД, оптимизированная для высокой скорости чтения и простоты развертывания.
| Параметр | PostgreSQL | MySQL |
|---|---|---|
| Лицензия | PostgreSQL License | GPL / Commercial |
| Изоляция по умолчанию | Read Committed | Repeatable Read |
| Типы индексов | B-tree, GIN, GiST, BRIN, Hash | B-tree, Hash, Full-text |
| ACID-комплаенс | Полный | Только для InnoDB |
| JSON | JSONB (бинарный) | JSON (текстовый) |
Производительность
PostgreSQL использует модель «процесс на соединение». Это обеспечивает стабильность при выполнении сложных JOIN-запросов и аналитических задач. Поддержка параллельного выполнения запросов позволяет эффективно использовать многоядерные CPU. MySQL использует потоковую модель (thread-per-connection), что дает преимущество в простых OLTP-сценариях с огромным количеством коротких операций чтения. В тестах на запись при высокой конкуренции PostgreSQL 15+ обходит MySQL за счет более совершенной реализации MVCC.
Конфигурация и сложность
Настройка PostgreSQL требует понимания параметров памяти. Основной файл postgresql.conf включает shared_buffers (обычно 25% RAM) и work_mem для сортировок. MySQL проще в базовой настройке, ключевой параметр — innodb_buffer_pool_size. PostgreSQL строже относится к типам данных и целостности: попытка вставить некорректную дату вызовет ошибку, тогда как MySQL в некоторых режимах может преобразовать её в дефолтное значение.
Когда выбрать что
- PostgreSQL: финансовые системы, ГИС (благодаря PostGIS), научные данные, сложные корпоративные ERP.
- MySQL: типичные веб-сайты, CMS (WordPress, Drupal), микросервисы с простыми схемами данных.
Стоимость / лицензия
PostgreSQL абсолютно бесплатна для коммерческого использования без ограничений. MySQL принадлежит Oracle и распространяется под GPL. Для встраивания в проприетарное ПО без раскрытия исходного кода требуется коммерческая лицензия.
Экосистема и интеграции
У PostgreSQL мощные расширения: PostGIS для геоданных, TimescaleDB для временных рядов и Citus для шардинга. MySQL лидирует в инструментах репликации и имеет развитую поддержку в облачных провайдерах. Для MySQL популярны форки, такие как Percona Server и MariaDB.
Вердикт
Выбирайте PostgreSQL, если важна надежность данных, сложные связи и расширяемость. Выбирайте MySQL для стандартных веб-проектов, где критична скорость чтения и простота масштабирования репликами.