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

Beste Möglichkeit, einen base64-codierten Wert in MySQL DB zu speichern?

Die Sortierung macht nur einen Unterschied, wenn Sie ORDER BY benötigen oder durchsuchen Sie die Spalte. Diese base64-codierten Elemente werden wahrscheinlich nicht durchsucht oder sortiert.

Wenn Ihre codierten Elemente garantiert weniger als 64 KB lang sind, definieren Sie Ihre Spalte wie folgt:

   `columnname` TEXT CHARACTER SET ascii,

Dies ist genau das, was für eine Base64-codierte Variable benötigt wird; der Kodierungsprozess verwandelt alles in anzeigbares ASCII.

Wenn die Elemente weniger als 16 Megabyte lang sind, einige jedoch länger als 64 KB sind, verwenden Sie MEDIUMTEXT statt TEXT .

Bearbeiten Jahre später.

Der OQ-codierte String, decodiert, ist ein serialisiertes PHP-Objekt:

a:2:{s:20:"Type_of_organisation";s:20:"Member of Parliament";s:8:"Postcode";s:7:"PE1 1JA";}

Beobachtung 1:Vieles davon wird in Textspalten gespeichert, ohne es zu codieren, wobei der Zeichensatz utf8 oder utf8mb4 verwendet wird. Viele? Ja. WordPress speichert Optionsdaten auf diese Weise.

Beobachtung 2:Wenn es in JSON übersetzt werden kann, könnten Sie den JSON-Datentyp in neueren Versionen von MySQL verwenden. JSON-Suchen sind immer noch nicht sargable, aber sie sind strukturiert.