Поясніть, навіщо потрібні документоорієнтовані БД (MongoDB)

Сенс ряляційних баз колись був лише у тому, щоб дати відповідь на _будь-яке питання за будь-який проміжок часу. Тобто. наприклад є якась бд у компанії і треба зробити якийсь звіт.

В інтернет-додатках все дещо інакше. Найчастіше запити до БД однакові за рідкісним винятком (пошук). BigTable та інші зав'язуються цього принципу, створюючи індекс на потрібні запити при зміні даних асинхронно.

Таким чином, після зміни даних відразу оновлюються індекси для потрібних запитів. У SQL індекси теж є, але вони на нижчому рівні.

MongoDB створює індекси автоматично при першому запиті. Тому це дуже схоже на схему lang memcache sql. Але набагато швидше, т.к. сам mongodb швидше ніж memcached (я сам це не перевіряв ще й вірю насилу, але всі в один голос стверджують що це так).

Другий бонус — простіша реплікація. Зокрема, у того ж mongodb концепція master-slave та шардів знаходиться у самому серці.

Третій бонус – map/reduce для обробки даних. Виконуються вбудованою мовою (у mongodb це spidermonkey, тобто яваскрипт).

Загалом і загалом спочатку написаний на mongodb додаток буде теоретично швидше ніж SQL варіант. Принаймні з швидкою реалізацією, як MongoDB.