我有一个 DynamoDB 表,其分区键:
id
和排序键为数字 timestamp
(它将始终存在)。
id
永远是独一无二的。在这种情况下,使用 timestamp
作为排序键是否有意义? (并且只使用简单的id
作为简单的主键?)
正如评论中已经提到的,当哈希键已经唯一时,将时间戳作为排序键没有任何价值。
我还要提到,拥有唯一的哈希键意味着您将仅限于 GetItem 或 Scan(整个表)。除非你创建一些 GSI
也许您永远都知道 ID,因此 GetItem 就是您所需要的。
但是,请考虑您的其他访问模式。选择不同的哈希键并将 ID 作为排序键(的一部分?)可能会为您提供最好的服务。
既然您提到了时间戳,我将向您指出在 DynamoDB 中处理时间序列数据的最佳实践;它实际上使用具有不同配置的 WCU/RCU 的多个表。对于大多数人来说可能有点过时了,而且考虑到按需 Dynamo DB 的可用性,可能已经过时了。