mbd*_*dev 17 performance database-design mongodb
我从性能的角度看,嵌入效果更好:"如果性能是一个问题,那就嵌入." (http://www.mongodb.org/display/DOCS/Schema+Design)大多数指南总是说应该嵌入包含.
但是我不确定是这种情况.假设我们有两个对象:Blog和Post.博客包含帖子.
现在将所有帖子嵌入博客中都会出现以下问题:
考虑到上述所有情况,我会在一个引用Blog的单独集合中发帖.这是正确的结论吗?
(注意:请不要在响应中考虑文档大小限制,假设每个博客最多有1000个帖子)
And*_*ich 12
1.使用$ slice运算符进行分页:
db.blogs.find({}, {posts:{$slice: [10, 10]}}) // skip 10, limit 10
Run Code Online (Sandbox Code Playgroud)
2.过滤也可能:
db.blogs.find({"posts.title":"Mongodb!"}, {posts:{$slice: 1}}) //take one post
Run Code Online (Sandbox Code Playgroud)
3,4.一般来说,我猜你说的是小的性能差异.这不是火箭科学,只是博客最多1000个帖子.
你说:
Is this the correct conclusion?
Run Code Online (Sandbox Code Playgroud)
不,如果你关心性能(一般来说,如果系统很小,你可以使用单独的文件).
我做了关于3,4的小型性能测试,结果如下:
-----------------------------------------------------------------
| Count/Time | Inserting posts | Adding to nested collection |
-------------|--------------------------------------------------
| 1 | 1 ms | 28 ms |
| 1000 | 81 ms | 590 ms |
| 10000 | 759 ms | 2723 ms |
---------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)