gpt4 book ai didi

cassandra - PreparedStatements 是否由 CQL 字符串缓存? Datastax PreparedStatement 是否保留语句 ID?

转载 作者:行者123 更新时间:2023-12-01 01:02:58 28 4
gpt4 key购买 nike

服务器端和客户端上的语句缓存是通过 PreparedStatement 的字符串呈现严格缓存还是其他什么?换句话说,如果两个不同的 PreparedStatement 是通过不同的方式创建的,但最终具有完全相同的 CQL 文本呈现,它们是否都必须准备(假设相同的服务器)?如果他们来自不同的客户?

更不重要的是......在什么条件下客户端能够从 PreparedStatement 转换为语句 ID,而无需咨询服务器?

(我来自 Oracle 经验,如果有帮助的话。)

最佳答案

if two different PreparedStatements are created by different means, but end up having exactly the same CQL textual rendering, will they both have to be prepared (assuming the same server)? If they come from different clients?



从不同的客户端执行相同的语句
刚刚对此进行了测试,两个客户端执行了两次相同的预处理语句,cql 语句缓存在 o.a.c.cql3.QueryProcessor#preparedStatements 中。最终存储了 2 个语句,即使它们的字符串再现是相同的,这意味着不同客户端的 PreparedStatements 被缓存。

从同一个客户端执行相同的语句
来自单个客户端的重复语句不会被缓存两次,因此它们可以被重用并且不必重新编译,当客户端执行相同的准备好的语句时,它只发送语句 id 和参数。

关于cassandra - PreparedStatements 是否由 CQL 字符串缓存? Datastax PreparedStatement 是否保留语句 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484624/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com