Cassandra PreparedStatements是否由CQL字符串缓存?Datastax PreparedStatement是否保留报表ID?

Cassandra PreparedStatements是否由CQL字符串缓存?Datastax PreparedStatement是否保留报表ID?,cassandra,prepared-statement,cassandra-2.0,Cassandra,Prepared Statement,Cassandra 2.0,服务器端和客户端上的语句缓存是否严格按照PreparedStatement的字符串格式副本进行缓存,还是其他方式?换句话说,如果两个不同的PreparedStatement是通过不同的方式创建的,但最终具有完全相同的CQL文本呈现,那么它们是否都必须准备好(假设使用相同的服务器)?如果他们来自不同的客户 更不重要的是。。。在什么条件下,客户机能够在不咨询服务器的情况下将PreparedStatement转换为语句ID (如果有帮助的话,我来自Oracle的经验。) 如果以不同的方式创建了两个不同

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

更不重要的是。。。在什么条件下,客户机能够在不咨询服务器的情况下将PreparedStatement转换为语句ID

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

如果以不同的方式创建了两个不同的准备报表, 但是最终得到完全相同的CQL文本呈现,是吗 两者都必须准备好(假设服务器相同)?如果他们来自 不同的客户

从不同的客户端执行相同的语句
刚刚对此运行了一个测试,两个客户端执行了两次相同的prepared语句,
o.a.c.cql3中的cql语句缓存。QueryProcessor#preparedStatements
最终存储了两条语句,即使它们的字符串格式相同,也意味着缓存了不同客户端的preparedStatements

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