【问题标题】:How does DynamoDB LastEvaluatedKey work internally?DynamoDB LastEvaluatedKey 如何在内部工作?
【发布时间】:2020-05-19 12:18:04
【问题描述】:

DynamoDB 文档(例如 here)解释了如何使用 LastEvaluatedKey 对结果进行分页。我知道它有效,但我想了解如何。据我所知,DynamoDB 在分区键上构建了一个无序哈希索引。这不应该意味着如果你给它一个键,它不知道哪些键在它之前或之后——因为它没有排序?那么它如何知道哪些键跟随LastEvaluatedKey?这个索引是如何工作的?是否只是附加了新项目/密钥?删除的项目/密钥会怎样?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    您也已链接的 Query() 仅对复合(分区 + 排序)键有用,因此结果集是有序的。

    Scan() 可以仅与分区键一起使用。所以从某种意义上说,结果在给定的分区内是“无序的”。就此而言,我不保证逻辑第一个分区键将是第一个扫描的分区。

    然而,亚马逊并不神奇。数据仍然有一些物理(和/或逻辑)顺序,他们可能不会发布内部信息,而且您今天看到的顺序可能不是您明天看到的顺序。但是 Scan() 根据定义,从开头开始到结尾。如果没有中间的顺序,就不可能有开始或结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2019-10-13
      • 2019-01-13
      • 2010-10-14
      • 2013-09-28
      • 2012-08-01
      相关资源
      最近更新 更多