ваш взгляд у nosql баз данных ключевые недостатки по сравнению с реляционными?
https://pbs.twimg.com/media/Bv91DRKIQAEC77J?format=png&name=large
ACID
Это разные хранилища для разных задач
Нельзя сравнить. Тоже искал везде. Но ответ 1 всегда. Исходя из задачи выбирается тип.
Так чтобы выбирать, надо понимать ключевые отличия бд, и отталкиваясь от этого и от своих нужд делать выбор
noSQL в подавляющем большинстве случаев - просто БД; SQL в подавляющем большинстве случаев - реляционные СУБД. Поэтому надо сначала смотреть, что из себя представляет noSQL: СУБД или БД. Когда noSQL - СУБД, это специализированная СУБД, заточенная под узкий круг задач. Реляционные же - универсальные СУБД общего назначения, предназначенные для очень большого круга задач.
В монге атомарная работа в пределах документа , а в постгресе ты можешь все в транзакцию завернуть, вплодь до изменения схемы. То есть уже про изоляцию состояния приходится париться больше. Реляционная модель позволяет тебе обмазаться предикатами/ключами и более-менее все будет хорошо РСУБД - возможность описать стэйт предикатами и гарантировать целостность данных на языке формальной логики - это офигенно А еще это значит что разработчики могут спокойно глобальный стэйт запихнуть без какой-либо изоляции в одно хранилище потому что хранилище защитит от дурачков Скажем с тем же jsonb это удобно но это абсолютно не значит что у jsonа этог оне будет никакой схемы. И ты можешь даже констрейны прописать: ALTER TABLE jsontable ADD CONSTRAINT uuid_must_exist CHECK (j ? 'uuid'); Иногда тебе нужны ограничения, иногда нет. Иногда тебе хочется "перестраховаться" и сделать ограничения на самом низком уровне (база) а иногда тебе важнее гибкость и ты выносишь все ограничения на уровень приложения, оставляя базу тупой и оставляя за собой гибкость выбора хранилища. Сегодня твой маленький сервис маленький а завтра тебе руководство говорит "надо срочно мультирегиональный деплоймент что бы данные волшебным образом реплицировались по всему миру с целью уменьшения лэтенси" и ты такой "о, збс, у меня стэйт разделен на агрегаты и я могу запихать все в dynamodb global table и пить смузи. Ну и как не странно монга хороша там, где с данными нужно работать как с документами, какой-нибудь ЭДО, опросили аля Гугл формы
Обсуждают сегодня