这是性能问题。 将数据拆分为多个数据表,只需使用属性索引的单个数据表就可以获得性能优势,在此基础上数据可以分成多个数据表吗?
感谢。
答案 0 :(得分:0)
对于一个你必须认识到MongoDB有一个集合限制,它取决于索引大小:http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections
可以同时查询集合,但是Mongo具有全局(2.2级中的数据库级别)锁定,因此出于性能原因,如果您每秒处理一次MANY写入,那么将数据拆分为DB似乎更为可行节点
使用多个集合的主要好处是可伸缩性。与一个巨大的集合相比,更容易对许多集合进行分片,并且更容易使用总是使查询相对较快的分片键。由于范围原因,它也更容易。大文档=当硬盘空间增长时,文档会更多地移动。
使用一个集合的主要好处是易于查询。但你必须记住,嵌入文档3级或更深层可能不是一个好选择,它确实可以在没有客户端过滤的情况下查询数据库端,这实际上会使你的应用程序变慢。
但正如其他人所说,这取决于你的用例等等,这一切都取决于你没有给我们的细节。
我可能已经留下了一些细节,但这是基础知识,希望有所帮助
编辑:您可以在此处阅读Mongo的架构性能和内容:http://www.mongodb.org/display/DOCS/Schema+Design
答案 1 :(得分:0)
如果您关心的是性能,那么您应该考虑将automated sharding与mongodb mongodb一起使用。除非通常单独查询数据,否则将数据拆分为多个集合将使您的应用程序逻辑更加复杂,而不会受到mongodb提供的分片功能的好处。