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

La meilleure façon de stocker une valeur encodée en base64 dans la base de données MySQL ?

Le classement ne fait une différence que si vous avez besoin de ORDER BY ou recherchez la colonne. Ces éléments encodés en base64 ne seront probablement pas recherchés ou triés.

S'il est garanti que vos éléments encodés auront une longueur inférieure à 64 Ko, définissez votre colonne comme suit :

   `columnname` TEXT CHARACTER SET ascii,

C'est exactement ce qu'il faut pour une variable encodée en base64 ; le processus d'encodage transforme tout en ASCII affichable.

Si les éléments auront une longueur inférieure à 16 mégaoctets, mais que certains dépasseront 64 ko, utilisez MEDIUMTEXT au lieu de TEXT .

Modifier des années plus tard.

La chaîne encodée OQ, décodée, est un objet php sérialisé :

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

Observation 1 :beaucoup de ces éléments sont stockés dans des colonnes de texte sans les coder, en utilisant le jeu de caractères utf8 ou utf8mb4. Beaucoup ? Oui. WordPress stocke les données d'option de cette façon.

Observation 2 :S'il peut être traduit en JSON, vous pouvez utiliser le type de données JSON dans les versions récentes de MySQL. Les recherches JSON ne sont toujours pas sargables, mais elles sont structurées.