我需要在MySQL表中存储非常大量(数千万)的512位SHA-2哈希值。为了节省空间,我想以二进制形式存储它们,而不是以十六进制数字形式存储它们。我正在使用ORM(DBix::Class),因此将从代码中抽象出存储的具体细节,这可以将它们扩展到我选择的任何对象或结构。
MySQL的BIGINT
类型是64位。所以我理论上可以在八个BIGINT
列中分割哈希值。这看起来很荒谬。我的另一个想法是使用单个BLOB
列,但我听说由于MySQL将它们视为可变长度字段,因此访问速度很慢。
如果有人能提供一些可以节省我几个小时基准测试各种方法的widsom,我会很感激。
注意:自动-1给任何说“只使用postgres!”的人:)子> 的