当我们创建PreparedStatement对象时,它是否缓存在服务器端?与Oracle驱动程序中的PreparedStatement相比有何不同?如果重用了准备好的语句,那么什么数据被发送到Cassandra服务器,只有param值?
据我所知,java驱动程序中的一个Session对象拥有多个与集群中多个节点的连接。如果我们在多个线程中的应用程序中重用相同的预处理语句,是否会使我们只使用一个连接到一个Cassandra?我猜准备语句仅在一个连接上完成...当每个执行调用更新路由键时会发生什么?
使用准备好的陈述有什么好处?
谢谢
答案 0 :(得分:7)
是的,在准备声明后,只需要发送语句ID和参数。
驱动程序跟踪其连接池中每个服务器的语句ID;它对您的应用程序是透明的。
从不必为每个查询重新编译语句,可以提高性能。