当前位置: 首页 > 知识库问答 >
问题:

数据堆栈准备语句的工作原理

金和雅
2023-03-14

当我们创建准备语句对象时,它是否缓存在服务器端?与Oracle驱动程序中的准备语句相比有何不同?如果重用准备语句,哪些数据将发送到Cassandra服务器,仅限参数值?

据我所知,java驱动程序中的一个会话对象持有到集群中多个节点的多个连接。如果我们在多个线程中重用应用程序中相同的准备语句,会使我们只使用一个连接到一个Cassandra吗?我猜准备语句只在一个连接上完成...当路由键被每个执行调用更新时会发生什么?

使用准备好的语句有什么好处?

谢谢

共有1个答案

长孙鸿
2023-03-14

是的,在准备语句后只需要发送语句ID和参数

驱动程序跟踪其连接池中每个服务器的语句id;它对您的应用程序是透明的。

好处是不必为每个查询重新编译语句,从而提高了性能。

 类似资料:
  • 我用语句编写了这段代码,它运行良好: 但当我试图用PreparedStatement转换它时,它却不能处理SQL语法错误。

  • 我可能有一个简单的编码问题,但我无法解决。我在MySQL数据库中有英文或中文的地址,所以我使用了utf8_unicode_ci。我从数据库中检索我的汉字没有问题,但我不能在准备好的请求中使用汉字。 我解释说:如果我打 我会得到一个结果,因为其中一个地址包含“”但如果我尝试使用一个准备好的请求: 如果$_post[“address”]在英文中有效,在中文中就不行了:p 编辑: 当请求show变量时,

  • 我正在使用我生成的一个准备好的语句,但在Java抛出的语句上出现了语法错误。然而,当我将PS的toString复制并粘贴到数据库的phpmyadmin中时,它的执行完美无缺。有什么想法会出错吗,我很难理解? 编辑:更改为PS.ExecuteUpdate(查询);还是不起作用。

  • 问题内容: 今天有人告诉我,我确实应该在应用程序中使用PDO和准备好的语句。在我了解好处的同时,我也在努力了解如何将其实现到我的工作流程中。除了它使代码更简洁外,我是否应该有一个特定的数据库类来容纳所有准备好的语句,还是应该在每次运行查询时都创建一个?我发现很难理解何时应使用标准PDO查询以及何时应使用准备好的语句。任何示例,技巧或教程链接将不胜感激。 问题答案: pdo :: prepare()