【发布时间】:2023-04-01 20:55:02
【问题描述】:
我需要在 MySQL 表中存储大量(数千万)的 512 位 SHA-2 哈希值。为了节省空间,我想以二进制形式存储它们,而不是十六进制数字的字符串。我正在使用 ORM (DBix::Class),因此存储的具体细节将从代码中抽象出来,这可以将它们扩展为我选择的任何对象或结构。
MySQL 的 BIGINT 类型是 64 位。所以理论上我可以将散列分成八个BIGINT 列。不过,这似乎很荒谬。我的另一个想法是只使用一个 BLOB 列,但我听说由于 MySQL 将它们视为可变长度字段,它们的访问速度可能很慢。
如果有人能提供一些智慧来节省我几个小时对各种方法进行基准测试的时间,我将不胜感激。
注意:任何说“只使用 postgres!”的人自动 -1 :)
【问题讨论】:
-
只使用 postgres :)