我正在编写一个不一定需要扩展能力的应用程序,因为它不会在开始时收集大量数据。 (但是,如果我很幸运,我可以走下路。)
我将在同一个盒子上运行我的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是否有持久性风险?我听说在执行插入时可能会丢失数据 – 因为插入首先写入内存,然后写入数据库。
4.)这是否阻止我在生产中使用MongoDB?