我有一个名为Elements的Mongo集合,它包含了〜900万个文档。每个文档的结构如下:当查询64位整数字段时MongoDB find()变慢
{
_id : "1",
Timestamp : Numberlong(12345),
Nationality : "ITA",
Value: 5
}
如果我运行下面的查询:
db.Elements.find({ Nationality: 'ITA' })
查询执行快速(几毫秒)。
相反,如果我运行下面的查询:
db.Elements.find({ Timestamp: 12345 })
查询速度慢,在几十秒的量级。很显然,如果我在Timestamp
上添加索引,查询运行得更快。在字段Value
(Int32类型)上运行相同的查询,运行速度与第一个查询一样快。
我想了解的是:为什么第二个查询(没有索引)的性能比第一个要差得多? Mongo是否将Int64值视为与其他值不同?
另请为这两种类型的整数包括'explain(“executionStats”)'。有和没有索引 – Saleem
谢谢@JohnnyHK的建议。我刚刚做到了。 –