python - 收到 Cassandra 已准备好的声明

标签 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)我不是在谈论程序的一个实例的范围,而是在没有共享内存的情况下执行相同查询的多个实例。

最佳答案

您是对的:集群中的每个节点都会缓存准备好的语句。但是,客户端中没有获取已准备好的语句的机制。造成这种情况的原因有很多,这里不再赘述。

您的应用程序只需准备一次声明,并在集群/ session 的生命周期内保留它。驱动程序处理诸如在所有节点上准备语句以及在由于缓存驱逐或重新启动而丢失语句的节点上重新准备之类的事情。

关于python - 收到 Cassandra 已准备好的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26279964/

相关文章:

python - PyMySQL:插入数据准备语句

python - 如何创建矩阵和边之间的Python对应关系

python - 如何在 Python 中识别无法使用 CTRL + C 中断的代码的原因

java - 一个可更新的模型如何(例如 Cassandra CQL3 中的 “status”)并能够查询此状态?

php - 使用 PHP 在一个查询 MySQL 中插入数千行

MySQL 存储过程和标识符

python - Pandas:如果连续出现少于 n 次,则在一列中将 True 设置为 False

python - 使用 Python 获取 shell 输出?

java - 使用来自 hadoop reduce 的复合主键插入到 cassandra 表

javascript - 范围错误: index out of range when connect to cassandra databse in node js