我看到DynamoDB基本上只限于three data types:String,Number和Binary。这似乎留下了两个存储日期或时间戳的选项:
我需要排序'结果使用此日期/时间戳作为范围键并使用scanIndexForward。是否可以说哪种方法更有效?
答案 0 :(得分:20)
我不知道它必然更有效率,但我们使用Unix时间戳作为范围键取得了很好的成功。对于查询来说,它的速度很快(延迟时间不超过20毫秒,有时不到10毫秒),因此我们可以对最新版本进行排序"或者"最新的最早"使用scanIndexForward
标志。
缺点是,在查看原始表时,一眼就能比较两个时间戳很难,但是很容易将时间戳转换为您选择的语言的日期类型。
答案 1 :(得分:0)
我刚刚在我的一个DynamoDB表上做过DescribeTable,并注意到DynamoDB本身将表的CreationDateTime存储为UNIX时间戳浮点数。我猜他们这样做是有原因的。