将一个表分成多个表是否有意义

时间:2012-06-22 11:33:15

标签: performance mongodb

这是性能问题。 将数据拆分为多个数据表,只需使用属性索引的单个数据表就可以获得性能优势,在此基础上数据可以分成多个数据表吗?

感谢。

2 个答案:

答案 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提供的分片功能的好处。