【发布时间】:2015-03-06 14:35:31
【问题描述】:
我正在使用其原生驱动程序测量 MongoDB 的性能。 对于插入操作,我插入的次数越多,花费的时间就越多。但是,通过选择,我有 500.000 个文档(在 1 个集合中),每个文档中都有 4 个其他嵌入的小文档。
我还对 1 个子文档使用条件操作执行了选择查询。选择 100 个文档(总共 1000 个)的性能为 0,007 ms,而选择 50000 个文档(总共 500000 个)的性能为 0,008 ms。
我不太明白这怎么可能。真的那么快吗?我正在使用 JMH 测量性能。
【问题讨论】:
-
一个疯狂的猜测是您执行的查询没有任何索引,因此数据库无论如何都需要扫描整个集合。但要确保请使用
.explain()执行查询,以获取有关查询索引使用情况的更多信息,并将查询和解释输出添加到您的问题中。 -
另一种猜测是您只测量打开游标的时间,而不是实际从游标中检索数据的时间。请发布您的代码,否则您的问题无法得到解答。
-
感谢朋友的评论。我更新了我的问题。我现在试试 .explain()。
标签: java mongodb mongodb-java mongo-java database