MySQL String Spickzettel
Neben dem Spickzettel für die MySQL Integer Größe habe ich mir nun noch ein für die MySQL TEXT/BLOB Größe gemacht.
CHAR / BINARY
Größe festgelegt durch die Anzahl der Zeichen, aber maximal 255 Zeichen. Also immer ein Festwert, egal ob gefüllt, halb gefüllt oder leer.
VARCHAR / VARBINARY
Definierte Feldgröße:
- von 0-255 Zeichen: Anzahl der Zeichen + 1 Byte
- von 256-65532 Zeichen Anzahl der Zeichen + 2 Byte
Also ein VARCHAR (500) brauch für das abspeichern von “abcd” ein Byte mehr Platz als ein VARCHAR (200).
TINYTEXT / TINYBLOB
Größe: < 2 ^8^ Byte (+ 1 Byte MySQL) daraus ergibt sich max. 255 (Ein-Byte[1] ) Zeichen
TEXT / BLOB
Größe: < 2 ^16^ Byte (+ 2 Byte MySQL ) daraus ergibt sich max. 65535 (Ein-Byte[1] ) Zeichen oder ungefähr 64 KByte
MEDIUMTEXT / MEDIUMBLOB
Größe: < 2 ^24^ Byte (+ 3 Byte MySQL) daraus ergibt sich max. 16777216 (Ein-Byte[1] ) Zeichen oder ungefähr 16 MB
LONGTEXT / LONGBLOB
Größe: < 2 ^32^ Byte (+4 Byte MySQL) daraus ergibt sich max. 4294967296 (Ein-Byte[1] ) Zeichen oder ungefähr 4 GB
Ein Byte Zeichen deswegen weil sich die Anzahl der Zeichen bei Unicode-/Nicht ASCII-Zeichen entsprechend verringert.
- 1 Byte je Zeichen benutzt das normale Latin
- 2 Byte je Zeichen benutzen die meisten Europäischen Sprachen mit Umlauten, Akzenten usw.
- 3 Byte je Zeichen werden nur von chinesischen , koreanischen und japanischen Schriftzeichen benutzt.
Daraus folgt in einem Normalen “TEXT” können “nur” 21845 Chinesische oder 32767 “Normale” Nicht ASCII Zeichen untergebracht werden. Deswegen nochmal die Angabe in Byte