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

MySQL - Base64 vs BLOB

JSON presuppone utf8, quindi è incompatibile con le immagini a meno che non siano codificate in qualche modo.

Base64 è quasi esattamente 8/6 volte più ingombrante del binario (BLOB). Si potrebbe obiettare che è facilmente accessibile. 3000 bytes diventa circa 4000 bytes .

Tutti dovrebbero essere in grado di accettare codici a 8 bit arbitrari, ma non tutti lo fanno. Base-64 potrebbe essere il compromesso più semplice e nel complesso migliore per non dover gestire dati a 8 bit.

Poiché questi sono "piccoli", li memorizzerei in una tabella, non in un file. Tuttavia, li memorizzerei in una tabella separata e JOIN tramite un id appropriato quando ne hai bisogno. Ciò consente alle query che non richiedono l'immagine di essere eseguite più velocemente perché non scavalcano i BLOB.

Tecnicamente, TEXT CHARACTER SET ascii COLLATE ascii_bin lo farebbe, ma BLOB rende più chiaro che non c'è alcun testo utilizzabile nella colonna.