Задать вопрос
dilikpulatov
@dilikpulatov
веб-программист

Какой БД выбрать для ERP-систему, SQL или NoSQL?

Есть ERP система которые назначен для складский учет(плюс в будущим подключаем к маркетплейс и выпускаем API для внешнего пользования). Сейчас запустили как MVP и проект запустился успешно. Все добавки и правки сделали. Коротко говоря для БД точная схема определено. Теперь пока система работает и тестируется, хотим переписать с нуля под новым стеком. Выбираем БД которые подходят именно для таких проектов. Подскажите пожалуйста, стоит ли переходит на NoSQL(сейчас проект работает на Postgresql) или все же SQL хороший выбор? Сейчас в БД не так много данные но в будущим проекта ждет хорошая нагрузка, сто или тыс записи/чтение в секундах. Проект строен под микросервисную архитектуру. Поэтому можем использовать и то и другое. NoSQL а рекомендуют многие, говорят бистре чем SQL но я думаю с SQL ом проблема не будет если сделать архитектуру правильно (индексы, связи, кеширование и т.д).
  • Вопрос задан
  • 276 просмотров
Подписаться 3 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 4
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
NoSQL а рекомендуют многие, говорят бистре чем SQL

Производительность можно оценить только в конкретном сценарии использования, который будет уникален для каждого проекта. Заявления про скорость без контекста нужно оценивать как пустословие и хайпожорство.

сейчас проект работает на Postgresql

Его хватает и "Мой склад", и "Сберу" и многим другим, до чьих нагрузок вам добираться ещё годы, даже если у вас всё пойдёт замечательно.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
для ERP ВСЕГДА SQL
конечно, с грамотным же кодом приложения
там ценна не скорость а консистентность, в nosql этого нет от слова совсем

получишь 0,1 зарплаты а по бумагам пройдет как 1,5-2 - т.е. даже с премией

другое дело что какие-то части а-ля отрисовка и фронтенд можно и поиграться в скорость, опять же - лучше отдельная Постгре с JSON если так уж рука тянется
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Про что ERP системы? Они - про управление ресурсами предприятия. Нужно ли вам в процессе управления осуществлять поиски и соединения по разным сущностям? Скорее всего - да. 99% что да.

NoSQL системы принципиально не поддерживают JOINS. Они разрабатывались для других моделей где отклик важен а JOIN не нужен. NoSQL системы не умеют делать эффективное индексирование не-ключевых полей. Фактически если вы хотите индекс - вам производитель NoSQL нагло предложит просто создать реплику всей коллекции данных только сделав искомые поля ключевыми. Как поддержать реплику и сколько ресурсов это будет стоить - отдельный вопрос. Возможно в некотором гипотетическом сценарии поддержка хорошо индексированной NOSQL системы будет стоить дороже чем реляционной.

Вот и думайте. NoSQL в ERP - это авантюра.

Если вам критично в какой-то части время вставки - подумайте про CQRS или создание очередей в некоторых наиболее горячих точках системы. Должен быть компромисс. Невозможно построить везде быструю систему.
Ответ написан
Комментировать
@Jack444
PostgreSQL это не только SQL но и NoSQL что является более мощным инструментом чем использовать и то и то по отдельности, у постгре два основных типа это JSONB для коллекций как в MongoDB и HSTORE для набороа ключей и значений
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы