如何解决GCP Spanner 中 PK 的最佳散列方法
我有唯一的字符串,我想将其用作 Spanner 表的 id
列(主键)。为了更好地跨逻辑分片分布写入,我想对字符串进行哈希处理,如here 所述。
目前,我使用 sha256 w/hex 编码。
- 是否有首选方法将哈希字符串用作主键?
- 在 Spanner 中,使用 base64 编码而不是十六进制有什么缺点吗?
- 如果
id
列是STRING 64
,小于 64 的值是否提供任何性能优势?
解决方法
Is there a preferred method for hashing strings to use as a Primary Key?
没有。任何平均分配密钥的哈希函数都可以使用。
In Spanner,are there any drawbacks to using base64 encoding over hex?
不在扳手中。它们本质上是表示字节数组的不同方式。一般来说,base64 编码的字符串可能比十六进制 (base16) 编码的字符串短;而十六进制的可能更具人类可读性。对于您的用例,您可能需要进行基准测试,并在权衡利弊时查看实际性能。
If the id column is STRING 64,does the value being smaller than 64 offer any performance benefits?
从技术上讲是的,但这只是因为您存储/获取的数据较少。 STRING 64
只告诉 Spanner 密钥的大小限制是多少。它仍然只为键分配实际空间。
实际上,很难说您将获得多少好处,因为可能还有其他因素可能超过这一微小的好处。同样,如果您要将性能推向极限,则应该进行基准测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。