Я ' m писать приложение, которое не обязательно требует возможностей масштабирования , поскольку оно не будет собирать большие объемы данных вначале. (Однако, если мне повезет, я потенциально могу продолжить путь.)
Я буду запускать свой веб-сервер и базу данных на одном компьютере (пока).
При этом я ищу производительность и эффективность.
Основная часть моего приложения будет загружать статьи в блог. Используя СУБД (MySQL), я сделаю 6 запросов (2 из запросов присоединяются) просто для загрузки одной страницы статьи в блоге.
select blog
select blog_album
select blog_tags
select blog_notes
select blog_comments (join with users)
select blog_author_participants (join with users)
Однако с MongoDB я могу денормализовать и сгладить 6 таблиц всего до 2 таблиц / коллекций и минимизировать мои запросы до потенциально всего одного запроса
users
blogs
->blog_album
->blog_tags
->blog_notes
->blog_comments
->blog_author_participants
Теперь, переходя к схеме MongoDB, будет некоторая избыточность данных. Однако, место на жестком диске дешевле, чем CPU / серверы.
1.) Будет ли это хороший сценарий для использования MongoDB?
2.) Вы выигрываете в производительности при использовании MongoDB только при масштабировании за пределы одного сервера?
3.) Существуют ли какие-либо риски надежности при использовании MongoDB? Я слышал, что существует вероятность потери данных при выполнении вставок - поскольку вставки сначала записываются в память, а затем в базу данных.
4.) Должно ли это помешать мне использовать MongoDB в производстве?