当我使用3个选择器使用python-cloudant查询我的数据库时,查询需要大约15秒才能完成并打印结果。当我将限制为2时(参见下面的代码),结果显示非常快,但是在2之后需要更长的时间。目前该数据库中有大约190,000个文档。我错过了可以加快速度的事情吗?
query = cloudant.query.Query(db,selector={'_id': {'$gt': 0},'userid':{'$eq':'56900'},'year':{'$eq':'[2011]'}},fields=['_id','userid','year'],sort=['_id'],limit=2)
for doc in query()['docs']:
print doc
(此查询的目标是从年份字段中获取包含“[2011]”的用户ID“56900”的所有记录,并按_id对其进行排序)
答案 0 :(得分:1)
根据对该问题的评论。它很慢的原因是选择器的'_id': {'$gt': 0}
部分导致扫描所有文档以查看是否与选择器的其余部分匹配。删除此子句并将字段userid
和year
编入索引会大幅增加。