2008-09-27 19 views
13

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?

Antwort

16

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 Byte

TINYBLOB, TINYTEXT:
L + 1 Bytes, wobei L

Zusätzlich

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.

5

VARCHAR (255) ist mehr SQL-Standard als tinyblob oder tinytext. Ihr Skript und Ihre Anwendung wären daher für alle Datenbankanbieter portabler.

-8

Sie können nicht CHARACTER SET auf TINYTEXT anwenden, aber Sie können VARCHAR (255)

+2

Es ist nicht wahr, können Sie Charakter sowohl VARCHAR und TINYTEXT (in mySQL) gesetzt gelten, aber nicht beschränkt auf TINYBLOB. –