【问题标题】:Spring boot jpa select millions of records from db and process the dataSpring Boot jpa 从 db 中选择数百万条记录并处理数据
【发布时间】:2019-04-29 05:31:12
【问题描述】:

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

我应该如何处理这个问题?

我正在考虑一种方法,将记录分成 1000 条为一组并继续传递。

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

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

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

【问题讨论】:

  • 问题出在哪里?一个列表可以包含 400 000 个元素,因此只需选择数据并将其传递。
  • 旁注:400 000 通常不被视为“百万”。
  • 如何使用pagination
  • 当您说“将其作为列表传递”时,您需要对该项目列表做什么?你能描述一下你在输入/输出方面想要达到的目标吗?
  • 我正在制作一个 GET api,它会拉取数据并将其发送给调用者,一旦我拉取这些记录,我需要通过网络发送它

标签: spring spring-boot spring-data-jpa spring-batch


【解决方案1】:

您可以使用 OFFSET 和 LIMIT, 例子: 选择 * FROM t_users 按员工姓名订购 偏移 1000 行仅获取下 1000 行;

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

【讨论】:

  • 对不起,每次取1000条记录,用上面的查询。
猜你喜欢
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多