2009-07-31 118 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

相關問題