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