我的项目在Spring Boot中。我需要一次性获取超过15万条记录。我正在使用Spring JPA。
但是我的结果查询在服务器中给出了GC开销异常。令人惊讶的是,当我在获取实际记录之前添加了一个count(*)时,一切运行正常。
我正在寻找正确的逻辑答案
查询count(*)
是非常轻量的查询。这将对记录进行计数并仅返回值。但是select
查询会获取完整的数据,并且这里您正在获取150k条记录,这非常大,因此很明显获得GC开销异常]。
因此,解决方案是:优化,或者使用分页,或者使用高端服务器。