【问题标题】:UUID data type in DynamoDBDynamoDB 中的 UUID 数据类型
【发布时间】:2014-02-20 18:00:44
【问题描述】:

根据规范,UUID 是 128 位或 16 字节。十六进制表示为 36 个字符,包括连字符。我正在 DynamoDB 上构建一个新表,我必须确定我计划用 UUID 填充的 Hash 键的类型。我应该使用这些 UUID 的字符串或二进制的哈希键创建表吗?我的直觉告诉我字节,因为它的大小不到一半,这样可以节省带宽、空间等。

有没有人有过这样或那样的经历,并且有充分的理由选择其中的一种?

【问题讨论】:

    标签: uuid amazon-dynamodb


    【解决方案1】:

    我个人更喜欢使用尽可能多的基于字符串的属性/键,主要是因为在 AWS DynamoDB 控制台中调试它们更容易。

    我还觉得为压缩和原始二进制数据添加了二进制文件,而 IMO UUID 没有。

    从纯粹的性能角度来看,您可能是对的 - 但我会坚持使用可读的 UUID 字符串表示。

    【讨论】:

    • @Max 我现在正在玩这个。乍一看,它似乎在删除破折号时节省了空间。测试 'UUID' 7309c8e6-00f0-4e3c-89cf-a1a79ce20de6 在 DynamoDB 中变为 cwnI5gDwTjyJz6GnnOIN5g==。这确实压缩了存储和吞吐量方面的东西。如果您正在处理高事务环境并且人类是否可以读取 UUID 并不重要,那么节省可能是有益的。 Chen 在“调试”方面是正确的,因为您需要使用您的代码来确保正确连接(无法目不转睛)。金融交易系统使用类似的延迟技巧。
    • 我喜欢 base64 编码的字符串版本。用于调试 - 它更短,你可以在视觉上查找 2-3 个第一个字符,它应该已经很独特了
    • @ZackJannsen,它节省的空间比你想象的要多得多。您正在查看 base64 编码版本。在磁盘上(和内存中),它是 16 个字节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2012-10-10
    • 2014-10-26
    • 2016-03-19
    相关资源
    最近更新 更多