我正在编写一个不一定需要scaling abilities的应用程序,因为它在开始时不会收集大量数据.(然而,如果我幸运的话,我可能会沿着这条路走下go .)
我将在同一个盒子上运行我的web服务器和数据库(目前).
话虽如此,我还是在追求性能和效率.
我的应用程序的主要部分是加载博客文章.我将使用RDBMS(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模式,将会有一些数据冗余.然而,硬盘空间比CPU/服务器便宜.
1.)这是使用MongoDB的好方案吗?
2.)当扩展到单个服务器之外时,使用MongoDB是否只会提高性能?
3.)使用MongoDB是否存在耐久性风险?我听说在执行insert时可能会丢失数据,因为insert首先写入内存,然后写入数据库.
4.)这是否应该阻止我在生产中使用MongoDB?