Question

Je dois stocker un très grand nombre (des dizaines de millions) de hachages SHA-2 de 512 bits dans une table MySQL. Pour économiser de l'espace, je voudrais les stocker sous forme binaire, plutôt que d'une chaîne de caractères hexadécimaux. J'utilise un ORM ( DBix :: Class ) afin que les détails spécifiques du stockage soient extraits du code, ce qui peut les gonfler à n’importe quel objet ou structure que je choisis.

Le type

de MySQL BIGINT est de 64 bits. Je pourrais donc théoriquement diviser le hachage en huit colonnes BIGINT . Cela semble assez ridicule cependant. Mon autre pensée consistait simplement à utiliser une seule colonne BLOB , mais j'ai entendu dire qu'ils peuvent être lents à accéder car MySQL les traite comme des champs de longueur variable.

Si quelqu'un pouvait me proposer des idées qui me permettraient d'économiser quelques heures en comparant différentes méthodes, je l'apprécierais.

Remarque: automatique -1 à toute personne qui dit "utilisez simplement postgres!" :)

Était-ce utile?

La solution

Avez-vous pensé à "binaire (64)"? Voir le type binaire de MySQL.

Autres conseils

Utilisez le type BINARY (64)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top