这是性能问题。将数据拆分到多个数据表是否会在仅使用按属性索引的单个数据表时为您提供性能优势,在此基础上可以将数据拆分到多个数据表?
谢谢。
If you concern is performance, then you should consider using automated sharding with mongodb mongodb. Unless the data is usually queried separately, splitting your data into multiple collections will make your application logic more complex, without the benefit of sharding feature provided by mongodb.
你必须认识到 MongoDB 的集合限制取决于索引大小等因素:http ://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections
可以同时查询集合,但是 Mongo 具有全局(2.2 中的数据库级别)锁,因此出于写入方面的性能原因,如果您每秒处理对一个节点的多次写入,将数据拆分为数据库似乎更可行。
使用多个集合的主要好处是可伸缩性。对多个集合进行分片比对一个巨大的集合进行分片更容易,并且使用始终使查询相对快速的分片键也更容易。由于程度的原因,它也更容易。大文档 = 当文档增长时,文档在 HDD 空间中的移动更多。
使用一个集合的主要好处是易于查询。但是您必须记住,嵌入 3 层或更深的文档可能不是一个好的选择,而且它确实会使在没有客户端过滤的情况下查询 onm DB 端变得非常困难,这实际上可能会使您的应用程序变慢。
但正如其他人所说,这取决于您的用例等,这完全取决于您没有提供给我们的细节。
我可能遗漏了一些细节,但这是基础知识,希望对您有所帮助
编辑:您可以在此处阅读有关 Mongo 架构性能和内容的信息:http ://www.mongodb.org/display/DOCS/Schema+Design