DUPLICATE: Couchbase 4 beta “ORDER BY” performance
与问题标题显示一样,对于使用Couchbase 4(N1QL)ORDER BY
子句的一次调用,我面临着巨大的响应延迟,如13s。如果我不使用ORDER BY
条款,那么每件事都可以。
我的主要索引是
Definition: CREATE PRIMARY INDEX `#primary` ON `default` USING GSI
和二级索引是
Definition: CREATE INDEX `index_location_name` ON `default`(`name`) USING GSI
N1QL查询
req.params.filter
可以是位置文档中的任何键。
SELECT _id AS id FROM default WHERE type =' location'订购" + req.params.filter +(req.query.descending?' DESC':'')+"限制" + 限制+" OFFSET" +跳过
我的Bucket中的位置文档是
{
"_id": "location::370794",
"name": "Kenai Riverside Fishing",
"avgRating": 0,
"city": "Cooper Landing",
"state": "Alaska",
"country": "USA",
"zipCode": "99572",
"created": "2013-07-10T17:30:00.000Z",
"lastModified": "2015-02-13T12:34:36.923Z",
"type": "location",
}
任何人都可以说出为什么ORDER BY
条款会造成如此大的延迟?
答案 0 :(得分:0)
我认为,couchbase并非用于处理可以由任何字段排序的查询。由于在CB中订购是一项昂贵的操作,因此始终建议根据排序字段创建索引。同样,如果索引是按升序构建的,则不能将其用于降序,反之亦然。使用CB的最佳选择是,在可行的情况下,以升序和降序创建所有可能的索引。
我还建议您考虑Elasticsearch是否更适合动态搜索用例。