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

comments powered by Disqus