请帮帮我。 数据库是PostgreSQL + Java + Hibernate。 在№1底下有一个№1表,其中有400万行。也有一个基数№2,其中有一个表№2,其中有61 000行。 有一个有效的代码:
@Override
public List<UserStatisticDto> findGroupedByUser(final PageInfoDto pageInfo) {
final Query query = buildSortQuery(pageInfo.sort, StatisticEventEntity.FIND_GROUPED_BY_USER_QUERY, StatisticEventEntity.FIND_GROUPED_BY_USER);
query.setFirstResult(0);
query.setMaxResults(20);
List<UserStatisticDto> list = toUserStatisticDto(query.getResultList());
return getSubList(list, pageInfo);
}
private Query buildSortQuery(final SortInfoDto[] sort, final String sortQuery, final String nonSortQuery) {
Query query;
if(sort != null && sort.length > 0) {
String queryString = sortQuery;
query = getEntityManager().createQuery(queryString);
} else {
query = getEntityManager().createNamedQuery(nonSortQuery);
}
return query;
}
private List getSubList(List list, final PageInfoDto pageInfo){
int startIndex = (pageInfo.pageNumber) * pageInfo.pageSize;
int lastIndex = startIndex+ pageInfo.pageSize + 1;
if (lastIndex > list.size()){
return list.subList(startIndex, list.size());
}
return list.subList(startIndex, lastIndex);
}
有类PageInfoDto:
public class PageInfoDto implements Serializable {
public int pageNumber = 0;
public int pageSize = 20;
public SortInfoDto[] sort;
public PageInfoDto() {
}
public int getFirst() {
return this.pageNumber * this.pageSize;
}
}
有一个查询数据库,并在表上获取统计信息。在№2的数据库中,其中有61 000行完成了采样。在№1数据库中,大约有10分钟完成了400万行采样...
尽管我写了这个事实,它仍然无法正常工作。我们必须等待大约10分钟。
发送请求并形成答案的时间很长。 您能告诉我如何限制休眠状态将不会一次从数据库中卸载所有400万行的最大阈值吗?
如何使休眠模式仅卸载所需数量的数据? 在page.html上,有一个表格,其中放置20行。 请帮助我,我将非常感谢您。