CQL查询字符串的最大长度

时间:2018-06-01 07:30:01

标签: cassandra datastax cassandra-3.0 datastax-java-driver

cql查询字符串是否有最大长度限制?

我打算执行这个表单的长查询:select * from table where key in ('abc', 'xyz', ...)我估计查询字符串的长度在最坏的情况下大约为60kB。

2 个答案:

答案 0 :(得分:2)

documentation,您对查询中的参数数量(65535)有限制,但不限制字符串长度。

但是你需要仔细考虑你的方法 - 在IN中有一些值是可以的,但是有太多的值会导致麻烦,因为接收你的请求的节点("协调员&#34) ;)需要将查询转发到所有拥有密钥数据的节点,等待结果,将所有内容收集到一个部分,然后发回。最有可能的是,这将导致协调器节点过载,或者崩溃,或者超时或者其他事情。

如果您使用异步API并行发出请求,那么与使用IN相比,您可以获得更好的性能。

答案 1 :(得分:2)

在测试中,在系统开始抛出错误之前,我能够获得大约90K的查询长度。

根据您的阅读方式,您可能会遇到"参数列表太长的错误"在你到达列表中的65535项之前的方式。我能够使用仅为5000的列表(使用通过cat /proc/sys/kernel/random/uuid创建的ID列表)重现此内容。