Когда использовать MongoDB

Я ' 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 в производстве?

47
задан Community 22 September 2017 в 17:57
поделиться