收到Cassandra已经准备好的声明

时间:2014-10-09 13:39:41

标签: python cassandra prepared-statement datastax

我并非完全不确定我是否正确地准备了预备陈述的概念,但根据python driver docs准备好的陈述是"A statement that has been prepared against at least one Cassandra node"。对于那些在集群中某处读取的信息,我们已经有关于已经准备了哪些查询的信息。documentation还指出了"A PreparedStatement should be prepared only once. Re-preparing a statement may affect performance (as the operation requires a network roundtrip)."

如果我理解了这个概念,那么从集群接收已经准备好的语句而不是反复重新生成它们将是有益的(1)。有办法吗?如果是的话,我怎么才收到我感兴趣的陈述?

(1)我不是在谈论一个程序实例的范围,而是没有共享内存执行相同查询的多个实例。

1 个答案:

答案 0 :(得分:1)

您是对的:群集中的每个节点都会缓存预准备语句。但是,没有机制可以在客户端获取已经准备好的语句。这有很多原因,我不会在这里阐述。

您的应用程序需要准备一次声明并在群集/会话的生命周期内保留它。驱动程序处理诸如在所有节点上准备语句,以及重新准备因缓存逐出或重新启动而丢失它们的节点。