gpt4 book ai didi

java - 如何在 Spring Boot 中以内存高效的方式迭代 MySQL 中的大量记录

转载 作者:行者123 更新时间:2023-12-01 17:44:13 26 4
gpt4 key购买 nike

我想使用 findAll 从表中获取所有记录并对每条记录进行一些处理,但我不确定如果记录数量很大,是否会出现内存问题以百万计。

我已经研究了 Pageable 但我不确定如何使用 Pageable 方法迭代所有数据。是否甚至可以一次获取几条记录并处理它们,然后再次获取它们,直到处理完所有记录?

什么会更好?使用 findAll() 方法或 Pageable 方法获取 Iterable 中的所有记录?

最佳答案

如果实体较多,请勿使用 findAll。

如果你想使用分页,你可以这样做:

    Pageable pageRequest = PageRequest.of(0, 200);
Page<Qmail> onePage = repository.findAll(pageRequest);

while (!onePage.isEmpty()) {
pageRequest = pageRequest.next();

//DO SOMETHING WITH ENTITIES
onePage.forEach(entity -> System.out.println(entity.getId()));

onePage = repository.findAll(pageRequest);
}

关于java - 如何在 Spring Boot 中以内存高效的方式迭代 MySQL 中的大量记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57478686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com