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 :
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!