Couchbase 4“按订单”性能稳定

Couchbase 4“按订单”性能稳定,couchbase,n1ql,Couchbase,N1ql,重复: 正如问题标题所示,使用Couchbase 4 N1QL ORDER BY子句,我面临着巨大的响应延迟,一次调用的响应延迟为13秒。如果我不使用ORDERBY子句,一切都很好 我的主要索引是 Definition: CREATE PRIMARY INDEX `#primary` ON `default` USING GSI 二级指标为 Definition: CREATE INDEX `index_location_name` ON `default`(`name`) USING GSI

重复:

正如问题标题所示,使用Couchbase 4 N1QL ORDER BY子句,我面临着巨大的响应延迟,一次调用的响应延迟为13秒。如果我不使用ORDERBY子句,一切都很好

我的主要索引是

Definition: CREATE PRIMARY INDEX `#primary` ON `default` USING GSI
二级指标为

Definition: CREATE INDEX `index_location_name` ON `default`(`name`) USING GSI
N1QL查询

req.params.filter可以是位置文档中的任意键

从默认值中选择_id作为id,其中type='location'ORDER BY+ req.params.filter+req.query.DESCING?'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",
}

任何人都能知道为什么按条款订货会造成如此多的延误

我相信couchbase不是用来处理任何字段都可以排序的查询的。由于排序在CB中是一项昂贵的操作,因此始终建议根据排序字段创建索引。此外,如果索引是按升序构建的,那么它不能用于降序,反之亦然。如果可行,使用CB的最佳选择是使用asc和desc顺序创建所有可能的索引


<>我也建议你考虑一下弹性搜索是否更适合你的动态搜索用例。

你可以在结果的末尾发布度量,包括SoRtCube。另外,请张贴解释计划。我不得不认为WHERE子句中没有类型索引,因此查询速度会非常慢。对于执行较差的订单,这取决于运行查询服务的节点上的RAM和CPU。所以,检查这些资源。还有,你为什么要测试beta版?至少在4.0上进行测试。如果您正在考虑购买企业版,4.1有一些社区版所没有的巨大性能改进。