【发布时间】:2022-01-13 10:27:32
【问题描述】:
当我为报告目的获取表格时,我在新的 Spring Boot 应用程序中遇到了奇怪的缓慢。
这是一个简单的表,没有引用其他表,它有 5 列。行是 50k。 因此,我使用了 JpaRepository 中提供的简单 findAll() 方法。
当“目标”结果是实体时,findAll() 执行需要 5 分钟。 当我设置 DTO 类投影或接口投影时,执行需要 1-2 分钟。
我认为对于这么多的数据来说这仍然太多了。
此外,休眠统计提供了 0.5 秒的执行时间。剩下的 1-2 分钟获取 DTO 类型的数据需要什么?
【问题讨论】:
-
您是在开发环境还是生产环境中进行测试?调试时也要考虑断点
-
增加查询的获取大小,但是创建大约 50k 的对象需要一些时间。对象创建相对较慢,还要确保你的 bean 有正确的 equals 和 hashcode 实现。
-
增加获取大小没有帮助
标签: java spring-boot spring-data-jpa