首页 > 解决方案 > Spring Boot jpa 从 db 中选择数百万条记录并处理数据

问题描述

我正在开发一个 Spring Boot 应用程序,我需要从 db 获取 400000 行并将其作为列表传递。

我应该如何处理这个?

我正在考虑一种将记录分成 1000 组并传递的方法。

但在那种情况下,我将如何在我的 sql 查询中指定偏移量,比如一旦我获取前 1000 条记录,如何获取 1001 - 2000 条记录?

另一种方法是,如果我可以将记录作为流获取,在这种情况下,我必须找到一种方法,当有人调用我的 api 时,我可以从我的应用程序通过 REST GET api 发送流。

基本上我需要构建一个rest get api,我需要将这些数据传递给曾经使用我的api的人

标签: springspring-bootspring-data-jpaspring-batch

解决方案


您可以使用 OFFSET 和 LIMIT,例如:SELECT * FROM t_users ORDER BY employee_name OFFSET 1000 ROWS FETCH NEXT 1000 ROWS ONLY;

现在,在您的情况下,当您可以动态传递 OFFSET 值时,它将每次获取 100 条记录。


推荐阅读