MySQL "binary" vs "char-Zeichensatz binary"
Was ist der Unterschied zwischen binary(10)
vs char(10)character set binary
?
Sowie varbinary(10)
vs varchar(10)character set binary
?
Sind Sie Synonym in alle MySQL-Motoren?
Ist es gotcha zu achten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es nicht einen Unterschied.
Allerdings gibt es eine Einschränkung, wenn Sie die Speicherung einer Zeichenfolge.
Wenn Sie nur wollen, zum speichern eines byte-Arrays oder andere binäre Daten, wie einem stream oder einer Datei, dann verwenden Sie den binären Typ wie das ist, was Sie gedacht sind.
Zitat aus der MySQL-Handbuch:
So, technisch gibt es keinen Unterschied.
Jedoch beim speichern einer Zeichenfolge konvertiert werden müssen, aus einem string zu byte-Werte mit einem Zeichensatz. Die Entscheidung ist entweder selbst tun, bevor der MySQL-server, oder Sie lassen es MySQL zu tun haben, um für Sie zu tun. MySQL wird mit durch die Umwandlung von einer Zeichenfolge in BINARY mit BIN-Zeichensätze.
Wenn Sie möchten, speichern die Kodierung in ein anderes format, können sagen, Sie haben ein business-Anforderung, die besagt, dass Sie verwenden müssen 4 bytes pro Zeichen (MySQL nicht dies tun, indem Sie Standard -) Sie konnte dann nutzen Sie die "CHARACTER SET BINARY" auf, die einen Text-Spalte, und führen Sie die Zeichensatz-Codierung selbst.
Ist es auch lesenswert Die BINARY-und VARBINARY-Typen aus dem MySQL-Handbuch als dieser details-wichtige Informationen, wie die Polsterung.
Zusammenfassung:
Es gibt keinen technischen Unterschied, wie man ein synonym zu dem anderen. Meiner Meinung nach macht es einen logischen Sinn zum speichern von binären Zeichenketten in Datentypen, die normalerweise halten Sie eine Zeichenfolge mit dem "CHARACTER SET BINARY" und das speichern von byte-arrays /streams etc. im BINARY-Felder, die dargestellt werden können durch die Umwandlung der Daten aber ein Zeichen gesetzt.
char character set binary
konzipiert für byte-arrays zu?