2009-07-31 77 views
14

我需要在MySQL表中存储非常大数量(数千万)的512位SHA-2哈希值。为了节省空间,我想以二进制形式存储它们,而不是一个十六进制数字的字符串。我使用的是ORM(DBix::Class),因此存储的具体细节将从代码中抽象出来,这可以将它们膨胀为我选择的任何对象或结构。在MySQL中存储非常大的整数

MySQL的BIGINT类型是64位。所以我理论上可以在八个BIGINT列之间分割散列。这看起来很荒谬。我的另一个想法是使用一个BLOB列,但我听说由于MySQL将它们视为可变长度字段,它们访问速度可能会很慢。

如果有人可以提供一些widsom,这将节省我几个小时的基准各种方法,我会很感激。

注意:自动-1给任何人说“只使用postgres!” :)

+12

只是使用postgres :) – jeje 2009-07-31 09:11:09

回答

18

你认为'binary(64)'吗?请参见MySQL binary类型。

+0

感谢,`BINARY`看起来会完美。 – friedo 2009-07-31 09:45:00

相关问题