Хранение очень больших целых чисел в MySQL
Вопрос
Мне нужно хранить очень большое количество (десятки миллионов) 512-битных хэшей SHA-2 в таблице MySQL. Чтобы сэкономить место, я хотел бы хранить их в двоичной форме, а не в шестнадцатеричной строке. Я использую ORM ( DBix :: Class ) поэтому конкретные детали хранилища будут абстрагированы от кода, который может накачать их до любого объекта или структуры, которые я выберу.
Тип MySQL BIGINT
составляет 64 бита. Таким образом, я могу теоретически разделить хэш между восемью столбцами BIGINT
. Это кажется довольно смешным. Моя другая мысль состояла в том, чтобы использовать только один столбец BLOB
, но я слышал, что доступ к ним может быть медленным из-за того, что MySQL рассматривает их как поля переменной длины.
Если бы кто-нибудь мог предложить несколько слов, которые сэкономили бы мне пару часов на сравнительный анализ различных методов, я был бы признателен.
Примечание. Автоматически -1 для всех, кто говорит "просто используйте postgres!" :) Суб>
Решение
Рассматривали ли вы «двоичный (64)»? См. двоичный код MySQL .
Другие советы
Используйте тип BINARY (64)? р>