gpt4 book ai didi

MongoDB 查询性能 : Return all vs select fields

转载 作者:IT老高 更新时间:2023-10-28 13:30:09 26 4
gpt4 key购买 nike

在对我为测试目的制作的集合上的各种查询的性能进行基准测试时,我得到了一些意想不到的结果。该集合有点模仿我的实际需求,包含 10.000 个文档,每个文档有 20 个字段(每个字段有 5-30 个字符)。所有文档都完全相同,只有 _id 不同(也许这就是问题所在?)。

与官方的MongoDB相反documentation建议,指定要返回的字段并不会带来更好的性能,而是更糟糕。

简单的查找大约在 5 毫秒内完成。

db.collection.find().explain()

自定义查找在大约 30 毫秒内完成。

db.collection.find({},{Field1:1,Field2:1,Field3:1,Field4:1,Field5:1,Field6:1,Field7:1},{}).explain()

简单的“查找所有”和“返回所有”查询真的更快还是我遗漏了什么?

最佳答案

如果您返回整个文档 - 数据库的开销会更少,因为它不会将文档转换为返回部分文档。所有文档都以 BSON 格式存储在数据库中。并以同样的方式返回。

在您的情况下,预计会有少量开销。

字段限制适用于大量数据,当您有 10000 个结果文档时,在 DBMS 级别转换文档比通过套接字层传输要快得多。

关于MongoDB 查询性能 : Return all vs select fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23638121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com