suit: MySql - Spalte int(3) oder tinyint(3) unterschiede?

Beitrag lesen

Bisweilen hatte ich immer Text verwendet, aber das war natürlich nie voll. Wieviel text passt denn so grob gesprochen in Tinytext?

ein zeichen (ansi) benötigt in der regel 1 byte - unicode zeichen, zb als utf hinterlegt benötigen zusätzlich (je nach zeichen nochmal 2 bis 3 bytes)

der platzbedarf ist je nach datentyp auch noch mit etwas overhead (1, 2, 3 oder 4 bytes) verbunden

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

nehmen wir also den besten fall an, 1 byte pro zeichen

TINYTEXT = L + 1 bytes, where L <  2^8
2^8-1 = 255 zeichen passen maximal rein (weil ja L kleiner sein muss als 2^8, darum das -1)

LONGTEXT = L + 4 bytes, where L <  2^32 also 2^32-1 (=4.294.967.295), somit bringst du in longtext 4 milliarden zeichen unter

es kommt also drauf an in welcher zeichencodierung du texte hinterlegst und welche zeichen du verwendest

wenn du utf-8-inhalte speicherst und permament zeichen verwendest, die aus 4 bytes gebildet werden, kannst du in tinytext nur 63 zeichen reinpacken, wenn du nur ansi-zeichen verwendest - sagen wir "abcabc" bekommst du die vollen 255 zeichen rein