java - 正在使用 query.getResultList();方法对性能有严重影响?

标签 java mysql database performance persistence

我正在使用 Java 持久性 API 开发独立软件。我需要从数据库中获取单个结果和多个结果。我也有几个问题,

第一个是,

我正在使用 query.getResultList(); 方法来检索单个结果和多个结果。我想知道这个方法是否检索整个结果集或结果集的某些部分(比如在执行限制查询时,例如:*SELECT * FROM some_db.some_table限制 100 偏移量 120;*)。如果不是,是否会对性能产生严重影响? (在这种情况下,我正在考虑一个在某些表中包含大约 10000 条记录的数据库)

第二个,

使用query.getResultList();query.getSingleResult();有什么影响

最佳答案

您应该将数据库端和服务器端部分分开。

  1. 如果您从 DB 端到服务器端得到 100 行,那么对于后面的服务器端执行来说,您的表有多大并不重要。

  2. 因此,我认为您正在尝试理解仅使用一行的 query.getResultList() 的开销。恕我直言,你不应该为此烦恼。

  3. 基于 docs结果是 0 行时,query.getResultList()query.getSingleResult() 之间的区别似乎很小。

query.getSingleResult()

... if there are no results at all a NoResultException is thrown.

UPD

对于 Persistance API 尝试使用这种方式来创建查询:

getEntityManager().createQuery(查询) .setFirstResult(offset)//偏移量 .setMaxResults(limit)//限制 .getResultList();

关于java - 正在使用 query.getResultList();方法对性能有严重影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31315757/

相关文章:

java - 是否有显示 Ohloh 统计数据的 Maven 报告?

java - StandardOpenOption 问题 java

php - 使用 select 语句和 php 变量插入 MySQL

mysql - 将文本文件中的数据导入到sql表中

mysql - 如何将查询结果存储到sql变量中

mysql选择查询帮助如图所示

java - INSERT INTO 在 Java 中使用 INNER JOIN

java - 整数类型未按预期工作(Java)

java - hibernate 多个连接动态变化

java - android - 从 .java 文件控制 XML 文件时出现 NullPointerException