Что это
PostgreSQL — объектно-реляционная СУБД, ориентированная на расширяемость и соблюдение стандартов SQL. MariaDB — ответвление (fork) MySQL, развиваемое сообществом с упором на производительность и обратную совместимость.
| Параметр | PostgreSQL | MariaDB |
|---|---|---|
| Лицензия | PostgreSQL License (BSD) | GPL v2 |
| Тип СУБД | Объектно-реляционная | Реляционная |
| Поддержка JSON | JSONB (бинарный, индексируемый) | JSON через функции (текстовый) |
| Репликация | Логическая, физическая, синхронная | Master-Slave, Galera Cluster |
| Расширяемость | Высокая (плагины на C, Python, Rust) | Ограничена движками хранения |
Производительность
PostgreSQL эффективнее обрабатывает сложные запросы с множественными JOIN и аналитические задачи благодаря продвинутому планировщику и параллельному выполнению запросов. MariaDB показывает лучшие результаты в простых операциях чтения-записи (OLTP) за счет использования движков MyRocks и Aria, а также оптимизированного пула потоков (Thread Pool).
Конфигурация и сложность
Настройка PostgreSQL требует понимания параметров shared_buffers, work_mem и maintenance_work_mem. Файл pg_hba.conf управляет доступом на уровне сети. MariaDB проще в начальной настройке, так как является drop-in заменой MySQL. Основные параметры хранятся в my.cnf, где ключевым является innodb_buffer_pool_size.
Когда выбрать что
- PostgreSQL: сложные финансовые системы, ГИС (PostGIS), биоинформатика, высоконагруженные аналитические платформы.
- MariaDB: веб-приложения, CMS (WordPress, Drupal), миграция с legacy MySQL, проекты с необходимостью мульти-мастер репликации через Galera.
Стоимость / лицензия
PostgreSQL распространяется под либеральной лицензией, позволяющей закрывать исходный код коммерческих форков. MariaDB использует GPL, что обязывает открывать изменения в коде при распространении производного ПО. Обе СУБД бесплатны для использования в инфраструктуре.
Экосистема и интеграции
Экосистема PostgreSQL включает расширения TimescaleDB для временных рядов и Citus для шардинга. MariaDB предлагает ColumnStore для колоночного хранения данных и встроенную поддержку MaxScale для балансировки нагрузки.
Вердикт
Выбирайте PostgreSQL, если важна целостность данных, сложные типы (массивы, JSONB) и расширяемость. Выбирайте MariaDB для стандартных веб-задач, где требуется простота масштабирования чтения и полная совместимость с экосистемой MySQL.