【问题标题】:How to track already read records from DB?如何跟踪已经从数据库中读取的记录?
【发布时间】:2021-06-21 07:56:43
【问题描述】:

我正在编写一项服务,该服务将从数据库中检索记录(帐户详细信息),从中获取帐户 ID,并使用帐户 ID 调用休息 API。 此其余 API 仅接受 100 个帐户 ID。

假设我从 DB 中读取了前 100 条记录,调用了其余的 API 并进行了处理。现在,当从 DB 获取下一个 100 时,我如何确保我不是从我已经使用的最后 100 个中的一个中读取。数据库中有 100 万条记录。

谢谢

【问题讨论】:

  • 将处理过的 id 保存在表/文件中的某处
  • 也许您需要使用某种分页,在您的 REST API 级别进行排序。

标签: java database rest


【解决方案1】:

按关键字段对数据库查询进行排序并使用 TOP 100 语句,例如: SELECT TOP 100 * FROM .... ORDER BY [keyfield] 记住最后一个关键字段值,将其用于下一个数据库查询,例如: SELECT TOP 100 * FROM.... ORDER BY [keyfield] WHERE [keyfield] > 最后一个关键字段值。 等等..

【讨论】:

  • 如果在这个“手动”分页之间更新数据库,这个解决方案似乎有问题。我会亲自存储百万结果并根据需要调用 API 的多种类型。如果这期间有更新,至少会保持一致。
猜你喜欢
  • 1970-01-01
  • 2013-11-30
  • 2019-10-20
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 2016-08-21
相关资源
最近更新 更多