Часто утверждается, что mongodb безумно быстро пишет. Хотя они действительно не медленные, это довольно преувеличение. Пропускная способность записи в mongodb ограничена глобальной блокировкой записи. Да, вы меня правильно поняли, в любой момент на сервере может быть только ONE * операция записи.
Также я предлагаю вам воспользоваться mongodb без схемы и хранить ваши данные денормализованными. Часто можно выполнить только один поиск диска, чтобы извлечь все необходимые данные (потому что все они находятся в одном документе). Меньше дисков - быстрее запросов.
Если данные находятся в ОЗУ - поиск диска вообще не требуется, данные подаются прямо из памяти. Итак, убедитесь, что у вас достаточно оперативной памяти.
Map / Reduce , group , $, где запросы медленные.
Запись в один большой документ не так быстро (например, с использованием $push
). Документ выйдет за границы диска и должен быть скопирован в другое место, что потребует дополнительных операций с диском.
И я согласен с @AurelienB, некоторые базовые принципы универсальны для всех баз данных.
Обновление
* С 2011 года было выпущено несколько основных версий mongodb, что улучшило ситуацию с блокировками (от уровня сервера до уровня базы данных и уровня сбора). Был представлен новый механизм хранения, WiredTiger, который имеет блокировки на уровне документа. В общем, запись должна быть значительно быстрее сейчас, в 2018 году.