Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra:具有二级索引和集群键的查询如何工作_Cassandra - Fatal编程技术网

Cassandra:具有二级索引和集群键的查询如何工作

Cassandra:具有二级索引和集群键的查询如何工作,cassandra,Cassandra,例: 在表A中,id是分区键,time是集群键,deviceid是二级索引 查询1)从其中id=1234和time>xx和time

例:

在表A中,id是分区键,time是集群键,deviceid是二级索引

查询1)
从其中id=1234和time>xx和time
这个查询是如何工作的? 我已启用跟踪

首先是筛选二级索引,然后是筛选范围。我原以为是相反的

上述工作是否影响绩效?

Cassandra将对这两个查询使用相同的计划

您可以在cql中使用
跟踪命令查看cassandra用于获取记录的计划

在这两种情况下,它们将是相同的


因为使用了分区键,所以在这两种情况下只会引用单个节点。

但我们使用的是第一个二级索引,然后是分区键。正如旁注:Cassandra中的二级索引与传统dbs中的二级索引不同。实际上,它们最终会使集群的性能变得更差,或者除非非常小心地使用,否则无法大规模工作。它们不是用于查询优化的。不要像RDMS那样考虑它,除非绝对必要并且您完全理解原因,否则最有可能避免。