我正在编写一个不一定需要的应用程序扩展能力因为它一开始不会收集大量数据。 (但是,如果我幸运的话,我可能会走上这条路。)
我将在同一个机器上运行我的网络服务器和数据库(目前)。
话虽这么说,我正在寻找性能和效率。
我的应用程序的主要部分将是加载博客文章。使用 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 http://en.wikipedia.org/wiki/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 吗?