spring - Spring Boot jpa 从 db 中选择数百万条记录并处理数据
问题描述
我正在开发一个 Spring Boot 应用程序,我需要从 db 获取 400000 行并将其作为列表传递。
我应该如何处理这个?
我正在考虑一种将记录分成 1000 组并传递的方法。
但在那种情况下,我将如何在我的 sql 查询中指定偏移量,比如一旦我获取前 1000 条记录,如何获取 1001 - 2000 条记录?
另一种方法是,如果我可以将记录作为流获取,在这种情况下,我必须找到一种方法,当有人调用我的 api 时,我可以从我的应用程序通过 REST GET api 发送流。
基本上我需要构建一个rest get api,我需要将这些数据传递给曾经使用我的api的人
解决方案
您可以使用 OFFSET 和 LIMIT,例如:SELECT * FROM t_users ORDER BY employee_name OFFSET 1000 ROWS FETCH NEXT 1000 ROWS ONLY;
现在,在您的情况下,当您可以动态传递 OFFSET 值时,它将每次获取 100 条记录。
推荐阅读
- python - 如何在 python 中实现二维数组/里程计?
- java - 使用 Spring Boot 版本 2.4.3 时,文件 pom.xml 在第一行给出错误
- sql - Teradata 如何使用计数(不同)?
- c++ - 使用 MPI_Send 和 MPI_Recv 而不是 MPI_Gather
- docker - 关于 kubenetes pod 的 CPU/内存利用率,主机的 top 命令显示了什么
- python - 如何将文本文件转换为 json 文件?
- python - 如何在未完成工作的情况下识别 python 程序终止
- rubygems - 如何更新危险
- javascript - 具有动态反应组件处理程序绑定的 Javascript 循环
- html - 如何将 calc() 与 min-content 一起使用?