Armazenar grandes números inteiros em MySQL
Pergunta
Eu preciso armazenar um número muito grande (dezenas de milhões) de 512-bit SHA-2 hashes em uma tabela MySQL. Para economizar espaço, eu gostaria de armazená-los em forma binária, em vez de um feitiço String Um dígitos. Eu estou usando um ORM ( DBIx :: Class ) para que os detalhes específicos do armazenamento será captada a partir do código, que pode inflá-los a qualquer objeto ou estrutura que eu escolher.
tipo BIGINT
do MySQL é 64 bits. Então eu poderia, teoricamente, dividir o hash-se entre oito colunas BIGINT
. Isso parece bastante ridículo embora. Meu outro pensamento estava apenas usando uma única coluna BLOB
, mas eu ouvi que eles podem ser lento para acesso devido a MySQL de tratá-los como campos de comprimento variável.
Se alguém pudesse oferecer algum widsom que vai me salvar algumas horas de análise comparativa de vários métodos, eu aprecio isso.
Nota: Automático -1 a quem diz "basta usar postgres!" :)
Solução
Você considerou 'binário (64)'? Consulte MySQL binário tipo.
Outras dicas
Use o tipo BINÁRIO (64)?