DynamoDB 最佳实践 select 来自 table 所有项目的分页(无 PK)
DynamoDB Best practice to select all items from a table with pagination (Without PK)
我只是想从我的 table 中获取产品列表并分页,分页部分与 last_evaluated_key
相对清楚,但是所有示例都在 PK 或 SK 上使用,但是在我的例子中,我只想获得按 createdAt 排序的分页结果。
我的产品 ID (uniq uuid) 在这种情况下不是很有用。最后一个方案是全扫描table?
是的,您将使用 Scan
。 DynamoDB 有两种类型的读取操作,Query
和 Scan
。您可以 Query
换 one-and-only-one Partition Key
(也可以选择 range of Sort Key
values if your table has a compound primary key)。其他一切都是 Scan
.
Scan operations 阅读 每个 项,最大 1 MB,可选择过滤。过滤器在读取后应用。结果未排序。
SDK 具有 paginateScan 这样的分页助手,让生活更轻松。
回复:费用。问问自己:“是否 Scan
返回大量我实际上不需要的数据 MB?” 如果答案是 “否” , 你很好。然而,你越是过度获取,Query
相对于 Scan
的成本效益就越大。
我只是想从我的 table 中获取产品列表并分页,分页部分与 last_evaluated_key
相对清楚,但是所有示例都在 PK 或 SK 上使用,但是在我的例子中,我只想获得按 createdAt 排序的分页结果。
我的产品 ID (uniq uuid) 在这种情况下不是很有用。最后一个方案是全扫描table?
是的,您将使用 Scan
。 DynamoDB 有两种类型的读取操作,Query
和 Scan
。您可以 Query
换 one-and-only-one Partition Key
(也可以选择 range of Sort Key
values if your table has a compound primary key)。其他一切都是 Scan
.
Scan operations 阅读 每个 项,最大 1 MB,可选择过滤。过滤器在读取后应用。结果未排序。
SDK 具有 paginateScan 这样的分页助手,让生活更轻松。
回复:费用。问问自己:“是否 Scan
返回大量我实际上不需要的数据 MB?” 如果答案是 “否” , 你很好。然而,你越是过度获取,Query
相对于 Scan
的成本效益就越大。