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_Cql - Fatal编程技术网

Cassandra 检查记录是否存在

Cassandra 检查记录是否存在,cassandra,cql,Cassandra,Cql,我正在学习Cassandra,以及CQL和SQL的区别,但我注意到没有一种方法来检查Cassandra是否存在记录。目前,我最好的方法就是使用 SELECT primary_keys FROM TABLE WHERE primary_keys = blah, 并检查结果集是否为空。是否有更好的方法来执行此操作,或者我现在有正确的想法?这是Cassandra中检查行是否存在的常用方法。如果只关心行是否存在,则可能不希望返回所有主键,因此可以执行以下操作: SELECT count(*) FRO

我正在学习Cassandra,以及CQL和SQL的区别,但我注意到没有一种方法来检查Cassandra是否存在记录。目前,我最好的方法就是使用

SELECT primary_keys FROM TABLE WHERE primary_keys = blah, 

并检查结果集是否为空。是否有更好的方法来执行此操作,或者我现在有正确的想法?

这是Cassandra中检查行是否存在的常用方法。如果只关心行是否存在,则可能不希望返回所有主键,因此可以执行以下操作:

SELECT count(*) FROM TABLE WHERE primary_keys = blah, 

如果行存在,则返回1;如果行不存在,则返回0。

使用
count
将遍历所有匹配行,以便能够对它们进行计数。但你只需要检查一个,所以只要限制和返回任何东西。然后将结果的存在解释为
true
,不存在解释为
false
。例如:

SELECT primary_keys FROM TABLE WHERE primary_keys = blah LIMIT 1

如果您使用主键筛选行,则上述三种解决方案(包括您的)都可以。我不认为有什么真正的区别

但是,如果使用常规方法(如索引列、分区键)筛选行,则应采用“限制1”的解决方案,这将避免无用的网络流量

以下是一个相关示例:

如果在查询中包含所有主键列,则不可能有多个结果?这是最有效的解决方案