Couchbase 4“ ORDER BY”性能稳定版

问题描述 投票:2回答:1

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从默认WHERE类型='位置'ORDER BY“ +req.params.filter +(req.query.descending?'DESC':'')+“ LIMIT” +限制+“偏移” +跳过

我的存储桶中的位置文档为

{
  "_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子句产生这么多延迟吗?

couchbase n1ql
1个回答
0
投票

我相信,couchbase并不是为处理可以由任何字段排序的查询而构建的。由于在CB中订购是一项昂贵的操作,因此始终建议根据排序字段创建索引。同样,如果索引是按升序构建的,则不能将其用于降序,反之亦然。使用CB的最佳选择是,如果可行,以升序和降序创建所有可能的索引。

我还建议您考虑弹性搜索是否更适合您的动态搜索用例。

© www.soinside.com 2019 - 2024. All rights reserved.