java - SQL 查询模式和相对性能

标签 java sql oracle spring-batch spring-jdbc

<分区>

考虑一个以主键作为列“id”的表

必须查询 id 范围为 [ 1, 2, 3, 4 ...]

有2个选项-

1)

Select * from Table where id = 1;
Select * from Table where id = 2;
Select * from Table where id = 3;
Select * from Table where id = 4;

2)

Select * from Table where id in ( 1, 2, 3, 4 );

对于 Oracle as Databse 和使用 Spring JDBC Template 进行持久化,这两者中哪一个在性能上更好。从应用程序的角度抛开内存限制,假设数据集 1、2、3、4 将在 Java 数据结构的限制范围内。

它使用数据库连接池。

最佳答案

我宁愿使用第二个查询,因为它只查询数据库一次。除此之外,您也只连接数据库一次

请记住,数据库连接成本很高(消耗大量资源)。

关于java - SQL 查询模式和相对性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177402/

相关文章:

java - 使用 Apache Tomcat JDBC 的 JDBC 池单例数据库类

java - 如何在空白模式之间进行选择?

java - Firebase 读取数据时出现空对象引用的 onDataChange 方法错误

java Singleton - 通过反射防止多次创建

python - 执行 SQL 查询的更有效方法?

sql - 使用 SQL Server 中的表进行连接和求和的选择

sql - 子选择损坏的查询应该会导致错误,但会返回行

oracle - 如何使用序列作为自动增量ID?

java - 无法建立与 Exchange Web 服务的连接 - Java API

MySQL SELECT 和子集条件