我需要在MySQL表中存储数千万个512位SHA-2哈希值。为了节省空间,我想以二进制形式存储它们,而不是以十六进制数字字符串的形式存储。我正在使用ORM(DBix::Class),因此存储的具体细节将被抽象出来,可以将其扩展到任何我选择的对象或结构。
MySQL的BIGINT
类型为64位。因此,理论上我可以将哈希分成八个BIGINT
列。但这似乎相当荒谬。我的另一个想法是仅使用单个BLOB
列,但我听说它们访问起来可能会很慢,因为MySQL将它们视为可变长度字段。
如果有人能提供一些智慧,可以使我节省几个小时的基准测试吗?
注意:任何人如果说“只需使用postgres!”将自动得到-1的评分 :)