Datentyp VarChar

venyl

Mitglied
Hallo,

ich wollte wissen wieviel Bytes der Datentyp VarChar gesamt verbraucht. Gelesen habe ich
1 Byte + Stringlänge (Berechnung Speicherbedarf). Wie wird das berechnet? Die Maximale Zeichenkette ist 0-255 Zeichen.

Ich lasse zZ. bei meinem Newsscript das datum in der Spalte mit Varchar speichern da DATE 3 bytes verbraucht und DATETIME sogar 8 bytes.

Ist das sinnvoll was ich mache?
 
VARCHAR(M)
Erforderlicher Speicherplatz: L + 1 Bytes, wobei L <= M und 0 <= M <= 255 (siehe nachfolgender Hinweis) or L + 2 Bytes, wobei L <= M und 256 <= M <= 65535 (siehe nachfolgender Hinweis).

VARCHAR und die VARBINARY- und BLOB- und TEXT-Typen haben jeweils variable Längen. Bei ihnen hängen die Speicheranforderungen von den folgenden Faktoren ab:

- der tatsächlichen Länge des Spaltenwertes
- der maximal zulässigen Länge der Spalte
- dem für die Spalte verwendeten Zeichensatz

Eine VARCHAR(10)-Spalte beispielsweise kann einen String mit einer maximalen Längen von 10 aufnehmen. Wenn man voraussetzt, dass die Spalte den Zeichensatz latin1 verwendet (bei dem jedes Zeichen durch ein Byte dargestellt wird), dann entspricht die tatsächliche Speicheranforderung der Länge des Strings (L), zuzüglich eines Bytes zur Angabe der String-Länge. Beim String 'abcd' ist L 4, und der Speicherbedarf beträgt fünf Bytes. Wenn dieselbe Spalte stattdessen als VARCHAR(500) deklariert würde, dann benötigte der String 'abcd' 4 + 2 = 6 Bytes. Es werden zwei Bytes (statt nur eines) für das Präfix benötigt, da die Länge der Spalte größer als 255 Zeichen ist.

Quelle: http://dev.mysql.com/doc/refman/5.1/de/storage-requirements.html
 
Hallo,

es mach selten Sinn, andere Spaltentypen zu verwenden, wenn es für die entsprechende Datenart schon einen speziellen Typ gibt (DATE oder DATETIME). Der Speicherverbrauch spielt da wenig bis überhaupt keine Rolle.

Grüße,
Matthias
 
Zurück