首页 > 解决方案 > 如何减少查询时间 DynamoDB

问题描述

我正在设置 DynamoDB。我们的数据很简单,它有四个字段:

  1. 用户名
  2. 用户移位结束日期
  3. 用户项目代码
  4. 用户活动

理想情况下,我们应该根据UserShiftEndDate. 我们数据中的所有字段/组合都不是唯一的。我可以为每条记录添加一个自动生成的 ID。

请建议我选择哪些字段作为分区键和排序键或 GSI,以获得基于UserShiftEndDate.

例如,考虑下表:

用户名 用户移位结束日期 用户项目代码 用户活动
用户A 2020 年 12 月 13 日 45 监控
用户B 2020 年 12 月 14 日 47 测试
用户c 2020 年 12 月 17 日 45 监控
用户B 2020 年 12 月 14 日 45 测试
用户C 2020 年 12 月 15 日 47 管理

我的查询应将日期作为输入,并应返回shiftEndDate晚于或等于给定日期的所有用户数据。

例如,如果输入 12/14/2020,则查询应返回除第 1 行之外的所有用户数据。

我们计划以即时形式存储日期。为了简单起见,我在这里提到了它作为日期

标签: amazon-web-servicesamazon-dynamodbdynamodb-queriesamazon-dynamodb-index

解决方案


我建议创建一个 UUID(以编程方式生成)作为主键,然后创建一个带有UserShiftEndDate. 这样您就可以提供日期并获取具有提供日期的所有记录。请参阅这篇文章了解更多信息。


推荐阅读