如何在couchbase服务器中正确创建子查询的索引?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在couchbase服务器中正确创建子查询的索引?相关的知识,希望对你有一定的参考价值。

如何为该查询执行正确的索引?我需要加快这个查询。

SELECT q1, q2 
LET q1 = (Select ht.* FROM `mybucket` as mb WHERE mb.recdate IN (SELECT RAW MAX(recdate) FROM `mybucket` as mbt WHERE mbt.deviceID = "10101")), 
    q2 = (Select ht.* FROM `mybucket` as mb WHERE mb.recdate IN (SELECT RAW MAX(recdate) FROM `mybucket` as mbt WHERE mbt.deviceID = "10001"));
答案

您有两个并行查询,每个查询都有一个子查询。这两个查询非常相似。

您可以使用两个索引执行此操作。

在每种情况下,这个应该适合子查询:

CREATE INDEX date_deviceid_idx on mybucket(deviceID, recdate)

在每种情况下,这个应该适合主查询:

CREATE INDEX ht_recdate_idx on mybucket(recdate, ht)

以上是关于如何在couchbase服务器中正确创建子查询的索引?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用条件 Api 创建子查询

使用 DDD 创建子实体的正确方法

VueJs - 使用输入字段创建子组件的正确方法是啥

LEFT OUTER JOIN 在 bigquery 上创建子查询时出错

JOOQ:使用 WITH 子句创建子查询(使用纯 SQL)

使用 peewee 创建子查询,在子查询结果上使用 `.select`