Ответ
На последнем крупном проекте мы использовали PostgreSQL. Выбор пал на нее из-за требований к надежности, сложной бизнес-логике и работе с полуструктурированными данными.
Основные причины выбора:
- Надежность и соответствие ACID: Критично для финансовых транзакций проекта.
- Поддержка JSON/JSONB: Позволяла гибко хранить и индексировать конфигурации и динамические атрибуты без изменения схемы.
-- Пример запроса к JSONB полю SELECT * FROM products WHERE metadata->>'color' = 'red' AND (metadata->>'rating')::float > 4.5; - Сложные запросы и оконные функции: Для аналитических отчетов и дашбордов.
- Расширения: Использовали
PostGISдля геопространственных данных иpg_trgmдля нечеткого поиска.
Архитектура: Основное приложение работало с PostgreSQL, а для кэширования сессий, очередей задач и быстрого доступа к горячим данным (например, топ товаров) мы использовали Redis. Такой тандем отлично себя показал под нагрузкой.
Для администрирования и написания запросов активно использовали pgAdmin и миграции на основе Liquibase.