gpt4 book ai didi

java - MongoDB select's/find 对于大量数据似乎具有相同的性能

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:04 26 4
gpt4 key购买 nike

我正在使用其 native 驱动程序测量 MongoDB 的性能。对于插入操作,我插入的越多,耗时越长。但是,通过选择,我有 500.000 个文档(在 1 个集合中),每个文档中还有 4 个其他嵌入的小文档。

我还使用 1 个子文档的条件操作执行了选择查询。选择 100 个文档(从总共 1000 个文档中)的性能是 0,007 毫秒,而选择 50000 个文档(从总共 500000 个文档中)的性能是 0,008 毫秒。

我不太明白这是怎么可能的。真的那么快吗?我正在使用 JMH 测量性能。

最佳答案

您的测试设置仅测量打开游标所需的时间,而不是实际从游标读取任何数据的时间。

当您执行 contactCollection.find(bs); 时,数据库会返回一个游标对象,但实际上还没有执行任何操作。在您从游标中检索数据之前不会发生实际查询。将行更改为 contactCollection.find(bs).toArray() 应该会强制数据库返回所有结果,让您可以测量查询时间和通过网络传递结果所需的时间并让 Java 驱动程序解析结果。

或者,您可以使用 contactCollection.find(bs).explain() 来测量操作仅在数据库级别花费的时间,还可以从数据库中获取具有一些有用性能指标的 DBObject本身。

关于java - MongoDB select's/find 对于大量数据似乎具有相同的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28901023/

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