我需要在分布式数据库中生成并存储每行的标识符(高写入吞吐量)。Id 的长度有限制,希望它尽可能小。Id 必须是 utf8。
我正在考虑生成一个 uuidv4,转换为 base16 编码,删除连字符并采用部分字符子集,将来如果我们需要更多字符,我们会采用更大的部分子集。
例如 Uuid = 123e4567-e89b-12d3-a456-426655440000
子集 = 123e4567e89b
这是否存在可预见的问题?
您不能保证部分 UUID 将是普遍唯一的。现在,根据生成的 UUID 的数量,这可能不是问题 - 特别是如果您检查重复项...但也许最好只编写您自己的 ID 生成器,并使用您需要的长度规范。我想 UUID 的实际规范需要一定数量的位才能被视为普遍唯一,但您的要求限制了length。它们不需要使用实际的 UUID。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句