在MySQL中存储非常大的整数

时间:2009-07-31 08:59:25

标签: mysql storage blob

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

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

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

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

2 个答案:

答案 0 :(得分:19)

你考虑过'二进制(64)'吗?请参阅MySQL binary类型。

答案 1 :(得分:8)

使用类型BINARY(64)?