По сути, я различие между MMDB и OODB в том, что MMDB ожидает, что все его данные основаны на RAM, но в какой-то момент сохраняются на диске. Принимая во внимание, что OODB является более обычным в том смысле, что не ожидается, что вся БД вписывается в ОЗУ.
MMDB может использовать это, отказавшись от концепции, что постоянные данные не обязательно должны «соответствовать» данным в оперативной памяти.
Все, что с постоянством будет работать, заключается в том, что оно должно каким-то образом записывать данные на диск при обновлении.
Почти все БД для этого используют какой-то журнал. Эти журналы в основном представляют собой «сырые» страницы данных или, возможно, отдельные транзакции, добавленные в файл. Когда файл становится слишком большим, запускается новый файл.
Как только журналы правильно объединены в основном хранилище, журналы отбрасываются (или используются повторно).
Теперь необработанная БД в ОЗУ может существовать, просто добавляя транзакции в файл журнала, а при перезапуске просто загружает журнал в ОЗУ. Итак, по сути, файл журнала является базой данных.
Недостатком этого метода является то, что чем больше и больше транзакций у вас есть, тем больше ваш журнал / БД и, следовательно, тем больше время запуска БД. Но в идеале вы также можете «снимать» текущее состояние, что устраняет все журналы в актуальном состоянии и эффективно сжимает их.
Таким образом, все рутинные операции, выполняемые БД, - это добавление страниц в журналы, а не обновление других страниц диска, страниц индекса и т. Д. Поскольку в идеале большинству систем не требуется «запуск» что часто, возможно, время запуска не так важно.
Таким образом, таким образом, MMDB может быть быстрее, чем OODB, который имеет другой контракт с диском, поддерживая журналы и страницы диска. Таким образом, OODB может работать медленнее, даже если вся БД помещается в ОЗУ и должным образом кэшируется, просто потому, что вы выполняете дисковые операции вне операций журнала во время обычных операций, по сравнению с MMDB, где эти операции выполняются как «обслуживание». задание, которое можно запланировать во время простоя и / или тихого времени.
Относительно того, может ли какая-либо из этих систем удовлетворить ваши реальные потребности в производительности, я не могу сказать.