Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utiliser BLOB ou VARBINARY pour les données chiffrées dans MySQL ?

BLOB et VARBINARY sont tous deux des types de données "string", qui stockent binaire chaînes (en fait des tableaux d'octets), par opposition aux types de chaînes habituels, qui stockent des caractères chaînes, avec encodage de jeu de caractères, etc.

À bien des égards, vous pouvez considérer une colonne BLOB comme une colonne VARBINARY qui peut être aussi grande que vous le souhaitez.

BLOB diffère de VARBINARY de la manière suivante :

  • Il n'y a pas de suppression d'espace de fin pour les colonnes BLOB lorsque des valeurs sont stockées ou récupérées.
  • Pour les index sur les colonnes BLOB, vous devez spécifier une longueur de préfixe d'index.
  • Les colonnes BLOB ne peuvent pas avoir de valeurs DEFAULT.

Utiliser BLOB , car si vos valeurs chiffrées se terminaient par un octet d'espace (hex 20), elles seraient tronquées avec VARBINARY, corrompant ainsi votre valeur. De plus, vous ne mettrez pas d'index sur la valeur cryptée, donc le problème d'indexation n'a pas d'importance, et vous n'aurez pas non plus de valeur par défaut.