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

Is using query.getResultList(); method affect badly on performance?

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

第一个是,

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

第二个,

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

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

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

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

  3. 基于docs,当您得到 0 行时,query.getResultList()query.getSingleResult() 之间的差异似乎很小。

query.getSingleResult()

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

UPD

对于持久性 API 尝试使用这种方式创建查询:

getEntityManager().createQuery(query) .setFirstResult(offset) // offset .setMaxResults(limit) // limit .getResultList();