gpt4 book ai didi

java - Java 中的 SQL 优化选项

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:39:38 24 4
gpt4 key购买 nike

假设我有一个基本查询:

SELECT a, b, c FROM x WHERE y=[Z]

在此查询中,[Z] 是一个“变量”,具有注入(inject)到查询中的不同值。

现在考虑这样一种情况,我们想要使用 [Z] 的 2 个已知不同值执行相同的查询,比如 Z1Z2 .我们可以进行两个单独的查询:

SELECT a, b, c FROM x WHERE y=Z1

SELECT a, b, c FROM x WHERE y=Z2

或者我们可以通过编程方式设计一个不同的查询,例如:

SELECT a, b, c FROM x WHERE y in (Z1, Z2)

现在我们只有一个查询(1 < 2),但是查询构造和结果集解构变得稍微复杂一些,因为我们不再进行直接的简单查询。

问题:

  • 这种优化叫什么? (值得做吗?)
  • 如何从 Java 应用程序干净地实现它?
    • 现有的 Java ORM 技术有帮助吗?

最佳答案

What is this kind of optimization called?

我不确定是否有一个“合适的”术语,但我听说它称为查询批处理或只是简单的批处理。

(Is it worth doing?)

这取决于:

  • 优化查询是否值得,
  • 集合中元素的数量;即 ... IN ( ... ),
  • 发出 JDBC 请求的开销与查询编译等成本的对比。

但在适当的情况下,这绝对是一个值得的优化。

How can it be implemented cleanly from a Java application?

这取决于你对“干净”的定义:-)

Do existing Java ORM technologies help?

这取决于您所谈论的特定 ORM 技术,但是(例如)Hibernate HQL 语言支持允许您执行此类操作的结构。

关于java - Java 中的 SQL 优化选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262110/

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