在YugabyteDB YCQL中查询时,集群键的顺序是否重要?



[用户在YugabyteDB社区Slack上发布的问题]

我有一个关于YCQL中聚类列顺序的问题。下面是PRIMARY键的定义:

PRIMARY KEY (fsym_id, item, fiscalperiodenddate, startdate)
) WITH CLUSTERING ORDER BY (item ASC, fiscalperiodenddate DESC, startdate DESC).     

当他们尝试查询时,聚类键的顺序是否重要?例如:

select * from factsetestimatev4.con_af where fsym_id = 'Q2YN1N-R' and item='EPS' and startdate<='2022-05-03' and enddate>='2022-05-03' and fiscalperiodenddate>='2022-12-31';

select * from factsetestimatev4.con_af where fsym_id = 'Q2YN1N-R' and item='EPS' and fiscalperiodenddate>='2022-12-31' and startdate<='2022-04-04' and enddate>='2022-04-04';

根据我的理解,这应该无关紧要。

查询中谓词的顺序无关紧要。下面的例子是相同的:

WHERE cond1 and cond2

WHERE cond2 and cond1

但是一个好的PRIMARY KEY的选择与上述无关。

同样,enddate不是PK的一部分。所以应用程序可能会有一些效率低下,因为它可能需要扫描startdate < Apr/04th..的所有内容以获得提供的fsym_id, item, fiscalperiodenddate

最新更新