Някои общи точки относно MongoDB
Плюсове:
- без схема. Ако имате гъвкава схема, това е идеално за хранилище на документи като MongoDB. Това е трудно да се приложи по ефективен начин в RDBMS
- лекота на мащабиране. Скалата чете чрез използване на комплекти реплики. Мащабът записва чрез шардинг (автоматично балансиране). Просто запалете друга машина и тръгвайте. Добавяне на повече машини =добавяне на повече RAM, върху която да разпределите работния си набор.
- цена. Зависи от това коя RDBMS, разбира се, но MongoDB е безплатна и може да работи на Linux, идеална за работа с по-евтин стандартен комплект.
- можете да изберете какво ниво на съгласуваност искате в зависимост от стойността на данните (напр. по-бърза производителност =задействане и забравяне на вмъквания в MongoDB, по-бавна производителност =изчакване, докато вмъкването бъде копирано в множество възли, преди да се върне)
Минуси:
- Размерът на данните в MongoDB обикновено е по-голям поради напр. всеки документ има съхранени имена на полета
- по-малко гъвкавост при заявки (напр. без JOIN)
- без поддръжка за транзакции - поддържат се определени атомарни операции на ниво един документ
- в момента Map/Reduce (напр. за извършване на агрегиране/анализ на данни) е ОК, но не е изключително бърз. Така че, ако това се изисква, може да се наложи да се добави нещо като Hadoop към сместа
- налична по-малко актуална информация/бързо развиващ се продукт
Наскоро писах мислите си в блог в MongoDB като човек, който идва от SQL Server опит, така че може да се интересувате от това (по-горе са само някои от основните точки).
Ако търсите отговор „MongoDB по-добър ли е от RDBMS“ – тогава IMHO няма отговор. NoSQL технологии като MongoDB предоставят алтернатива, която допълва RDBMS технологиите. Единият може да е по-подходящ за конкретна цел от другия, така че всичко е свързано с обаждането за това, което е най-добро за вас за дадено изискване.