Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden Sie BLOB oder VARBINARY für verschlüsselte Daten in MySQL?

Sowohl BLOB als auch VARBINARY sind "String"-Datentypen, die binär speichern Strings (effektiv Byte-Arrays), im Gegensatz zu den üblichen String-Typen, die Zeichen speichern Strings, mit Zeichensatzkodierung etc.

In den meisten Fällen können Sie eine BLOB-Spalte als VARBINARY-Spalte betrachten, die beliebig groß sein kann.

BLOB unterscheidet sich von VARBINARY auf folgende Weise:

  • Nachgestellte Leerzeichen werden für BLOB-Spalten nicht entfernt, wenn Werte gespeichert oder abgerufen werden.
  • Für Indizes auf BLOB-Spalten müssen Sie eine Indexpräfixlänge angeben.
  • BLOB-Spalten können keine DEFAULT-Werte haben.

BLOB verwenden , denn wenn Ihre verschlüsselten Werte zufällig mit einem Leerzeichen (Hex 20) enden, würden sie mit VARBINARY abgeschnitten, wodurch Ihr Wert effektiv beschädigt würde. Außerdem setzen Sie keinen Index auf den verschlüsselten Wert, sodass das Indexproblem keine Rolle spielt, und Sie haben auch keinen Standardwert.