Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzare BLOB o VARBINARY per i dati crittografati in MySQL?

Sia BLOB che VARBINARY sono tipi di dati "string", che memorizzano binary stringhe (in effetti array di byte), al contrario dei soliti tipi di stringhe, che memorizzano carattere stringhe, con codifica charset ecc.

Per molti aspetti, puoi considerare una colonna BLOB come una colonna VARBINARY che può essere grande quanto vuoi.

BLOB differisce da VARBINARY nei seguenti modi:

  • Non è prevista la rimozione dello spazio finale per le colonne BLOB quando i valori vengono archiviati o recuperati.
  • Per gli indici su colonne BLOB, devi specificare una lunghezza del prefisso dell'indice.
  • Le colonne BLOB non possono avere valori DEFAULT.

Usa BLOB , perché se i tuoi valori crittografati terminano con uno spazio byte (esadecimale 20), verrebbero troncati con VARBINARY, corrompendo di fatto il tuo valore. Inoltre, non inserirai un indice sul valore crittografato, quindi il problema dell'indice non ha importanza, né avrai un valore predefinito.