我们有一个Mongo数据库,大约有100万个文档,我们想使用处理过的字段轮询此数据库,以查找我们之前未见过的文档。为此,我们正在设置一个名为
为了查询需要处理的文档,我们查询没有此处理字段的文档:
然而,每次执行此查询需要大约30秒的时间,速度相对较慢。在_processed字段上存在一个(asc)索引:
添加此索引不会改变查询性能。集合中还有其他几个索引(即ID idx和每个文档中几个字段的唯一索引)。
_processed字段很长,也许应该将其更改为bool类型以加快速度?
我们尝试使用$where查询(即
是否有任何想法是什么导致了缓慢的性能(或者这是正常的)?有人对如何提高查询速度有任何建议吗?
干杯!
_processed
的新字段。为了查询需要处理的文档,我们查询没有此处理字段的文档:
db.stocktwits.find({ "_processed" : { "$exists" : false } })
然而,每次执行此查询需要大约30秒的时间,速度相对较慢。在_processed字段上存在一个(asc)索引:
db.stocktwits.ensureIndex({ "_processed" : -1 },{ "name" : "idx_processed" });
添加此索引不会改变查询性能。集合中还有其他几个索引(即ID idx和每个文档中几个字段的唯一索引)。
_processed字段很长,也许应该将其更改为bool类型以加快速度?
我们尝试使用$where查询(即
$where : this._processed==null
)来执行与$exists : false
相同的操作,性能大约相同(比$exists慢几秒,这是有道理的)...是否有任何想法是什么导致了缓慢的性能(或者这是正常的)?有人对如何提高查询速度有任何建议吗?
干杯!