我对用于测试目的的集合上的各种查询的性能进行基准测试时遇到了一些意想不到的结果.该集合在某种程度上模仿了我的真实需求,包含10.000个文档,每个文档有20个字段(每个字段有5-30个字符).所有文件完全相同,并且只有_id不同(可能这是某种程度上的问题?).
与MongoDB官方文档建议的相反,指定返回哪些字段不会带来更好的性能,但更糟糕的是.
简单的查找是在大约5毫秒内完成的.
db.collection.find().explain()
Run Code Online (Sandbox Code Playgroud)
自定义查找在大约30毫秒内完成.
db.collection.find({},{Field1:1,Field2:1,Field3:1,Field4:1,Field5:1,Field6:1,Field7:1},{}).explain()
Run Code Online (Sandbox Code Playgroud)
普通的"全部找到"和"全部返回"查询真的更快还是我错过了什么?
小智 1
如果您返回整个文档 - 数据库的开销会更少,因为它不会将文档转换为返回部分文档。所有文档都以 BSON 格式存储在数据库中。并以同样的方式返回。
就您而言,预计会产生少量开销。
当您有 10000 个结果文档时,字段限制对于大量数据很有好处,并且在 DBMS 级别转换文档比通过套接字层传输要快得多。
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |