我正在尝试从C ++应用程序查询cassandra,并返回一组键的值。我正在使用此处描述的datastax驱动程序:http://datastax.github.io/cpp-driver/api/
cassandra查询字符串是这样的:
SELECT value from my_table WHERE key IN (?);
如果我为每个参数数量准备一个单独的查询字符串,则可以使用cass_statement_bind_string_n
,但是有一种方法可以使用一个字符串,而不管我要查询的键的数量如何?
答案 0 :(得分:1)
这里有几件事:
IN (?)
意味着您总是只询问一项-您的列表中只有一项; IN ?
,并使用ass_statement_bind_collection_by_name将其绑定到具有LIST
类型的值。 See doc on how you can create collection types; IN
来查询分区键确实是一种反模式-它会增加正在执行查询的节点的负载,并使查询变慢,因为协调节点将需要向其他节点发送请求,并且等待结果,收集它们,然后发送回去。如果您对每个分区键分别发出请求,并在应用程序中收集答案,则会更快。