Almacenar enteros muy grandes en MySQL
Pregunta
Necesito almacenar una gran cantidad (decenas de millones) de hashes SHA-2 de 512 bits en una tabla MySQL. Para ahorrar espacio, me gustaría almacenarlos en forma binaria, en lugar de una cadena de dígitos hexadecimales. Estoy usando un ORM ( DBix :: Class ) para que los detalles específicos del almacenamiento se abstraigan del código, lo que puede inflarlos a cualquier objeto o estructura que elija.
El tipo BIGINT
de MySQL es de 64 bits. Entonces, en teoría, podría dividir el hash entre ocho columnas BIGINT
. Sin embargo, eso parece bastante ridículo. Mi otro pensamiento era simplemente usar una sola columna BLOB
, pero he escuchado que pueden tener un acceso lento debido a que MySQL los trata como campos de longitud variable.
Si alguien pudiera ofrecer algo de widsom que me ahorre un par de horas de evaluación comparativa de varios métodos, lo agradecería.
Nota: Automático -1 para cualquiera que diga "¡solo use postgres!" :)
Solución
¿Has considerado 'binario (64)'? Consulte MySQL binary type.
Otros consejos
Utilice el tipo BINARY (64)?