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

Binario MySQL vs set di caratteri char binario

Non c'è differenza.

Tuttavia, c'è un avvertimento se stai memorizzando una stringa.

Se desideri archiviare solo un array di byte o altri dati binari come un flusso o un file, utilizza il tipo binario poiché è quello per cui sono pensati.

Citazione dal manuale MySQL :

Quindi, tecnicamente non c'è differenza.

Tuttavia, quando si memorizza una stringa, è necessario convertirla da una stringa in valori di byte utilizzando un set di caratteri. La decisione è di farlo da soli prima del server MySQL o lasciare che MySQL faccia per te. MySQL funzionerà con il cast di una stringa su BINARY utilizzando i set di caratteri BIN.

Se vuoi archiviare la codifica in un altro formato, supponiamo che tu abbia un requisito aziendale che dice che devi usare 4 byte per carattere (MySQL non lo fa per impostazione predefinita) puoi quindi usare il CHARACTER SET BINARY in una colonna di testo ed esegui tu stesso la codifica del set di caratteri.

Vale anche la pena leggere Il BINARY e VARBINARY Tipi dal manuale MySQL in quanto fornisce informazioni importanti come il riempimento.

Riepilogo: Non c'è differenza tecnica in quanto uno è sinonimo dell'altro. Secondo me ha senso logico memorizzare stringhe binarie in tipi di dati che normalmente conterrebbero una stringa usando il CHARACTER SET BINARY e per memorizzare array/stream di byte ecc. in BINARY campi che non possono essere rappresentati trasformando i dati attraverso un set di caratteri.