LINUX.ORG.RU

Когда у тебя база перестает влезать в оперативу одной железки, то базу нужно пилить.

Дальше есть выбор - распилить как два куска реляционной с натягиванием микро/макро сервисов и протоколом между. Либо если структура хорошо укладывается в предлагаемые монгой примитивы, то всякие шарды и прочие плюшки можно получить автоматом.

Дальше будет болезненный момент переделки приложения под новую реальность.

Хотя в 99.9% случаев проще докинуть плашку оперативы и переделать кривые таблицы/индексы.

ya-betmen ★★★★★
()

Если по каким-то причинам ты не можешь остаться в рамках однонодовой базы данных, то тебе приходится смотреть на распределенные системы. А оттуда на тебя смотрит cap-теорема. Дальше ты смотришь какие из буковок CAP для тебя важнее и выбираешь систему исходя из этого

cobold ★★★★★
()
Последнее исправление: cobold (всего исправлений: 1)

MongoDB подходит для хранения всякого мусора в коллекциях. Там же можно хранить json-ины с любым набором полей, и только _id обязательно… Году в 2017 ее пиарили, хайпили, все на нее переезжали, а в итоге там «агрегации тормозят на коллекциях 10 миллионов записей» (не мои слова)

rtxtxtrx ★★
()
Ответ на: комментарий от Cergoo

Да то просто было продолжение всеобщей V8-мании, сначала выдрали браузерный js-движок и решили использовать его на сервере, а потом решили его как фронт для базы прикрутить… Сначала фронты начали писать бекенд, породив тонны быдлокода, потом принялись быдлобазы делать. Ну MongoDB и предполагает, что проект на Node.js будет с вероятностью 90%

rtxtxtrx ★★
()

менять имеющееся в NoSQL смысла не имеет.

стартовать существенно проще с Mongo или Couch. Пока данных относительно немного, что конкретно/часто запрашивается неясно, и модель данных не утрясётся.

А там либо старт принесёт прибыль на переезд, либо вы сэкономили время :-)

MKuznetsov ★★★★★
()

БД выбирают исходя из потребностей, а не «давайте сменим одно на другое и посмотрим». Если у тебя отсутствует понимание происходящего - лучше не лезь туда вообще.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Как-то раз в IRC обсуждали эту тему, один чувак написал примерно следующее: у него в рабочем проекте в PostgreSQL была таблица под названием MongoDB с двумя полями: id (uuid) и data (jsonb).

hateyoufeel ★★★★★
()

Может быть, только если тебе совсем не нужны транзакции и джойны (декартово произведение). По крайней мере, в кассандре этого не было

anonymous
()
Ответ на: комментарий от ya-betmen

Есть ещё 2 варианта - база по типу ключ-значение требующая максимальной производительности и когда у тебя данные очень плохо структурированы, что реляционная модель не очень подходит к ним. Но это всё экзотика на специфичных задачах.

anonymous
()
Ответ на: комментарий от anonymous

Есть ещё 2 варианта - база по типу ключ-значение требующая максимальной производительности

Вообще частный случай реляционной, но без встроенного шардирования, с другой стороны если шардирование то о максимальной мроизводительности речи не идет.

ya-betmen ★★★★★
()

Они в принципе для разного.

Более того, слушал несколько историй, как в больших проектах суют NoSQL-ную СУБД ПЕРЕД PostgreSQL для ускорения критических вещей, а потом информация всё равно в Postgre складывается. ЕМНИП, это чуть ли не про avito.ru было.

hobbit ★★★★★
()