2009-07-31 3 views
14

Мне нужно хранить очень большое количество (десятки миллионов) 512-бит хэшей SHA-2 в таблице MySQL. Чтобы сэкономить место, я хотел бы сохранить их в двоичной форме, а не в строке шестнадцатеричных цифр. Я использую ORM (DBix::Class), поэтому конкретные детали хранилища будут абстрагированы от кода, который может раздуть их на любой объект или структуру, которые я выбираю.Хранение очень больших целых чисел в MySQL

Тип: MySQL BIGINT Тип: 64 бит. Поэтому я мог теоретически разделить хеш среди восьми столбцов BIGINT. Это кажется довольно смешным. Моя другая мысль заключалась в использовании единственного столбца BLOB, но я слышал, что они могут быть медленными для доступа из-за того, что MySQL обрабатывает их как поля переменной длины.

Если бы кто-нибудь мог предложить какой-то widsom, который спасет меня пару часов бенчмаркинга различных методов, я был бы признателен.

Примечание: Автоматический -1 для тех, кто говорит «просто используйте постгрес!». :)

+12

Просто используйте postgres :) – jeje

ответ

18

Вы считали «двоичным (64)»? См. MySQL binary.

+0

Спасибо, 'BINARY' выглядит так, как будто он будет работать отлично. – friedo

Смежные вопросы