database-design - 一般 MongoDb 数据库设计和索引性能 - 一个还是多个集合?

标签 database-design mongodb

这是一个关于mongodb数据库设计的一般问题,但我提出这个问题的原因是我正在为一个系统设计一个数据库,在这个系统中我为很多小网站生成静态html文件。 网站可以包含不同类型的页面,有些是用户列表,有些是其他页面列表,有些只是静态信息页面。

现在我想知道是否有一个页面集合来存储所有不同类型网站页面的数据会更好,或者是否会更好 有多个集合 - 每种类型的页面都有一个集合。

如果我只使用一个集合,那么这可能最终会在包含许多条目的表上产生许多索引,包括按页面类型进行索引。 如果使用多个集合,那么每个集合都会更小,并且有一些索引,其中 id 字段上的每个集合都有一个索引。

我的直觉是,一般来说,使用多个集合会更好,因为这样数据就已经通过将它们放在不同的集合中而具有一级索引。 但是如果不同集合的数量大约为 100 个怎么办?

我的问题基本上是,就索引性能和索引大小、写入性能、锁定等而言,这两种方法中哪一种更可取 - 许多集合还是一个 super 集合?

答案可能是“视情况而定”的某种变体,那么在决定走哪条路时需要考虑哪些重要因素?

最佳答案

MongoDB 文档讨论了这个确切的问题:http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections

一般来说,集合数量相对较多并不是问题。

关于database-design - 一般 MongoDb 数据库设计和索引性能 - 一个还是多个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9901367/

相关文章:

html - 动态元描述撇号被 ' ASCII 值替换

database-design - 无需存储过程或触发器即可工作

mysql - 如何处理表中单个字段的多个值?

performance - 在高流量网站中规范化或非规范化

javascript - meteor JS : Client not getting data from Mongo DB

javascript - meteor 检查用户是否是管理员

python - Postgres 数据库安全 : what to store in environment variables?

database-design - 数据库分片、非规范化和同步

node.js - Nodejs Mongodb更新多个集合

node.js - 计算值与数组不匹配的位置