sql >> Databasteknik >  >> RDS >> Mysql

Använd BLOB eller VARBINARY för krypterad data i MySQL?

Både BLOB och VARBINARY är "strängdatatyper", som lagrar binär strängar (effektivt byte-arrayer), i motsats till de vanliga strängtyperna, som lagrar tecken strängar, med teckenuppsättningskodning etc.

I de flesta avseenden kan du betrakta en BLOB-kolumn som en VARBINARY-kolumn som kan vara hur stor som helst.

BLOB skiljer sig från VARBINARY på följande sätt:

  • Det finns inget slutstegsborttagning för BLOB-kolumner när värden lagras eller hämtas.
  • För index på BLOB-kolumner måste du ange ett indexprefixlängd.
  • BLOB-kolumner kan inte ha DEFAULT-värden.

Använd BLOB , för om dina krypterade värden råkar sluta i ett mellanslagsbyte (hex 20), skulle det trunkeras med VARBINARY, vilket effektivt korrumperar ditt värde. Du kommer inte heller att sätta ett index på det krypterade värdet så indexproblemet spelar ingen roll, inte heller kommer du att ha ett standardvärde.



  1. Oracle får främmande nycklar

  2. MySql få lista över unika ord från tabell där värden i ett fält separeras med kommatecken

  3. Oracle partitionsindex

  4. Hämta datum även om det inte finns i tabellen från SQL SELECT-satsen