Jpa 使用高偏移量时性能较慢
例如,我想从包含约18K行的citizen表中检索所有数据Jpa 使用高偏移量时性能较慢,jpa,spring-data,Jpa,Spring Data,例如,我想从包含约18K行的citizen表中检索所有数据 String sqlResult = "SELECT * FROM CITIZEN"; Query query = getEntityManager().createNativeQuery(sqlResult); query.setFirstResult(searchFrom); query.setMaxResults(searchCount); // searchCount is 20 List<Object[]> l
String sqlResult = "SELECT * FROM CITIZEN";
Query query = getEntityManager().createNativeQuery(sqlResult);
query.setFirstResult(searchFrom);
query.setMaxResults(searchCount); // searchCount is 20
List<Object[]> listStayCit = query.getResultList();
String sqlResult=“选择*来自公民”;
Query Query=getEntityManager().createNativeQuery(sqlResult);
query.setFirstResult(searchFrom);
query.setMaxResults(searchCount);//搜索计数是20
List listStayCit=query.getResultList();
在“searchFrom”偏移量很大(17K或其他)之前,一切都很好。例如,需要3-4分钟才能得到20行(17000到17020)。那么,有没有更好的方法让它更快,但不是通过调谐数据库
p/s:很抱歉我的英语不好您可以使用批处理查询。 这里有一篇很好的文章解释您的问题的解决方案:
您使用哪一个数据库?您可以添加生成的SQL语句吗?生成的查询可能会对ROWID的使用引起一些皱眉。事实上,所使用的查询以分页方式进行是非常糟糕的;它甚至不能按可预测的顺序获取结果。当您已经在使用
setFirstResult()
和setMaxResults()
时,使用批处理查询如何解决此问题?