Maison > base de données > tutoriel mysql > le corps du texte

Quel est le type de données le plus efficace pour stocker les valeurs de hachage SHA1 dans MySQL ?

Barbara Streisand
Libérer: 2024-11-13 12:10:02
original
595 Les gens l'ont consulté

What is the Most Efficient Data Type for Storing SHA1 Hash Values in MySQL?

Stockage efficace des valeurs de hachage SHA1 dans MySQL

Lors du stockage du résultat d'un hachage SHA1 dans une base de données MySQL, il est essentiel de déterminer le type de champ pour une efficacité de stockage optimale.

La question se pose : quelle doit être la longueur du champ VARCHAR pour stocker le résultat de hachage ?

Réponse :

Bien que VARCHAR soit adapté aux données de longueur variable, il n'est pas idéal pour les données de longueur fixe comme un hachage SHA1. Une valeur SHA1 a toujours une longueur de 160 bits, et l'utilisation de VARCHAR entraînerait une perte d'octet supplémentaire pour le champ de longueur.

De plus, le stockage de la valeur SHA1 brute est inefficace car il utilise 4 bits par caractère, nécessitant 40 caractères. (160/4).

Au lieu de cela, il est recommandé d'utiliser le type de données BINARY(20) et de convertir la valeur SHA1 en binaire à l'aide de la fonction UNHEX. Cette méthode stocke le hachage au format binaire, en utilisant 8 bits par caractère, et ne nécessite que 20 caractères (160/8).

Comparaison de stockage :

Une comparaison entre BINARY(20) et CHAR(40) illustrent l'avantage d'efficacité :

Avec des millions d'enregistrements :

  • BINARY(20) : 44,56 M
  • CHAR(40 ): 64,57 M

L'utilisation du type de données BINARY(20) réduit considérablement l'espace de stockage, ce qui en fait le choix préféré pour stocker les valeurs de hachage SHA1 dans MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal