Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo migliore per memorizzare un valore codificato in base64 in MySQL DB?

La raccolta fa la differenza solo se devi ORDER BY oppure cerca nella colonna. Questi elementi codificati in base64 probabilmente non verranno ricercati o ordinati.

Se è garantito che i tuoi elementi codificati abbiano una lunghezza inferiore a 64.000 byte, definisci la tua colonna in questo modo:

   `columnname` TEXT CHARACTER SET ascii,

Questo è esattamente ciò che è necessario per una variabile codificata in base64; il processo di codifica trasforma tutto in ASCII visualizzabile.

Se gli elementi avranno una lunghezza inferiore a 16 megabyte, ma alcuni saranno più lunghi di 64k, utilizzare MEDIUMTEXT invece di TEXT .

Modifica anni dopo.

La stringa codificata OQ, decodificata, è un oggetto php serializzato:

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

Osservazione 1:molte di queste cose vengono archiviate in colonne di testo senza codificarle, utilizzando il set di caratteri utf8 o utf8mb4. Molti? Sì. WordPress memorizza i dati delle opzioni in questo modo.

Osservazione 2:se può essere convertito in JSON, è possibile utilizzare il tipo di dati JSON nelle versioni recenti di MySQL. Le ricerche JSON non sono ancora selezionabili, ma sono strutturate.