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