sql >> Base de Datos >  >> RDS >> Mysql

¿La mejor manera de almacenar un valor codificado en base64 en MySQL DB?

La intercalación solo marca la diferencia si necesita ORDER BY o busque la columna. Es probable que estos elementos codificados en base64 no se busquen ni clasifiquen.

Si se garantiza que sus elementos codificados tienen menos de 64 K bytes de longitud, defina su columna de esta manera:

   `columnname` TEXT CHARACTER SET ascii,

Esto es exactamente lo que se necesita para una variable codificada en base64; el proceso de codificación convierte todo en ASCII visualizable.

Si los elementos tendrán menos de 16 megabytes de longitud, pero algunos tendrán más de 64k, use MEDIUMTEXT en lugar de TEXT .

Editar años después.

La cadena codificada OQ, decodificada, es un objeto php serializado:

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

Observación 1:muchas de estas cosas se almacenan en columnas de texto sin codificarlas, utilizando el conjunto de caracteres utf8 o utf8mb4. ¿Un montón? Sí. WordPress almacena datos de opciones de esta manera.

Observación 2:si se puede traducir a JSON, podría usar el tipo de datos JSON en versiones recientes de MySQL. Las búsquedas JSON aún no se pueden sargable, pero están estructuradas.