Meine Frage zur Seite gibt es wirklich einen Unterschied zwischen tinyblob & tinytext?varchar (255) v tinyblob v tinytext
Kaufen meine echte Frage ist, was Grund, wenn überhaupt, würde ich VARCHAR (255) über TINYBLOB oder TINYTEXT wählen?
Meine Frage zur Seite gibt es wirklich einen Unterschied zwischen tinyblob & tinytext?varchar (255) v tinyblob v tinytext
Kaufen meine echte Frage ist, was Grund, wenn überhaupt, würde ich VARCHAR (255) über TINYBLOB oder TINYTEXT wählen?
Hauptsächlich storage requirements und Speicherhandhabung/Geschwindigkeit:
In der folgenden Tabelle stellt
M
die deklarierte Spaltenlänge in Zeichen für nicht-binäre String-Typen und Bytes für binäre String-Typen.L
repräsentiert die tatsächliche Länge eines gegebenen Zeichenfolgenwerts in Bytes.VARCHAR (
M
), VARBINARY (M
):
L
+ 1 Bytes Wenn Spaltenwerte erfordern 0 - 255 Bytes,
L
+ 2 Bytes, wenn Werte können erfordern mehr als 255 ByteTINYBLOB, TINYTEXT:
ZusätzlichL
+ 1 Bytes, wobeiL
siehe this Beitrag:
Für jede Tabelle in Gebrauch ordnet MySQL Speicher für 4 Reihen. Für jede dieser Zeilen nimmt die CHAR (X)/VARCHAR (X) -Spalte die X-Zeichen hoch.
A TEXT/BLOB auf der anderen Seite ist durch einen 8-Byte-Zeiger dargestellt + ein 1-4 Bytelänge (abhängig von dem BLOB/TEXT-Typ). Der BLOB/TEXT ist dynamisch bei der Verwendung zugewiesen. Dies wird weniger Speicher verwenden, aber in einigen Fällen kann Ihr Speicher im langen Lauf fragmentieren.
bearbeiten: Als Neben Blobs Binärdaten und Text speichert ASCII speichern, das ist der einzige Unterschied zwischen TINYBLOB und TINYTEXT.
VARCHAR (255) ist mehr SQL-Standard als tinyblob oder tinytext. Ihr Skript und Ihre Anwendung wären daher für alle Datenbankanbieter portabler.
Sie können nicht CHARACTER SET auf TINYTEXT anwenden, aber Sie können VARCHAR (255)
Es ist nicht wahr, können Sie Charakter sowohl VARCHAR und TINYTEXT (in mySQL) gesetzt gelten, aber nicht beschränkt auf TINYBLOB. –