cql查询字符串是否有最大长度限制?
我打算执行这个表单的长查询:select * from table where key in ('abc', 'xyz', ...)
我估计查询字符串的长度在最坏的情况下大约为60kB。
答案 0 :(得分:2)
每documentation,您对查询中的参数数量(65535)有限制,但不限制字符串长度。
但是你需要仔细考虑你的方法 - 在IN
中有一些值是可以的,但是有太多的值会导致麻烦,因为接收你的请求的节点("协调员&#34) ;)需要将查询转发到所有拥有密钥数据的节点,等待结果,将所有内容收集到一个部分,然后发回。最有可能的是,这将导致协调器节点过载,或者崩溃,或者超时或者其他事情。
如果您使用异步API并行发出请求,那么与使用IN
相比,您可以获得更好的性能。
答案 1 :(得分:2)
在测试中,在系统开始抛出错误之前,我能够获得大约90K的查询长度。
根据您的阅读方式,您可能会遇到"参数列表太长的错误"在你到达列表中的65535项之前的方式。我能够使用仅为5000的列表(使用通过cat /proc/sys/kernel/random/uuid
创建的ID列表)重现此内容。