想要改进这个问题吗? 更新问题,以便 editing this post 提供事实和引用来回答它.
关闭 2 年前。
我正在编写一个不一定需要扩展能力的应用程序,因为它一开始不会收集大量数据。 (但是,如果我幸运的话,我可能会走上这条路。)
我将在同一个机器上运行我的网络服务器和数据库(目前)。
话虽如此,我正在寻找性能和效率。
我的应用程序的主要部分是加载博客文章。使用 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?
最佳答案
当你有一个与其优势相匹配的用例时,你会使用 MongoDB。
您需要无模式文档存储吗?不,你有一个稳定的架构。
您需要自动分片吗?不,您没有非凡的数据需求或预算来横向扩展硬件。
您需要 map/reduce 数据处理吗?不适用于博客之类的东西。
那你为什么还要考虑呢?
https://stackoverflow.com/questions/4981753/