536 Stimmen

Maximale Länge für Text vom Typ MySQL

Ich erstelle ein Formular zum Versenden von privaten Nachrichten und möchte die maxlength Wert einer Textarea entsprechend der maximalen Länge einer text Feld in meiner MySQL-Datenbanktabelle. Wie viele Zeichen kann ein Textfeld vom Typ "Text" speichern?

Wenn viel, könnte ich dann die Länge im Textfeld der Datenbank angeben, wie ich es bei varchar tun würde?

863voto

fyr Punkte 19599

Siehe für Höchstzahlen: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

TINYBLOB, TINYTEXT       L + 1 bytes, where L < 2^8    (255 Bytes)
BLOB, TEXT               L + 2 bytes, where L < 2^16   (64 Kilobytes)
MEDIUMBLOB, MEDIUMTEXT   L + 3 bytes, where L < 2^24   (16 Megabytes)
LONGBLOB, LONGTEXT       L + 4 bytes, where L < 2^32   (4 Gigabytes)

L ist die Anzahl der Bytes in Ihrem Textfeld. Die maximale Anzahl von Zeichen für Text ist also 2 16 -1 (bei Verwendung von Einzelbyte-Zeichen). Bedeutet 65 535 Zeichen (bei Verwendung von Einzelbyte-Zeichen).

UTF-8/MultiByte-Kodierung Bei der Verwendung von MultiByte-Kodierung kann jedes Zeichen mehr als 1 Byte Platz beanspruchen. Bei UTF-8 liegt der Platzbedarf zwischen 1 und 4 Byte pro Zeichen.

153voto

evilReiko Punkte 17904

Typ

Ca. Länge

Genaue Max. Erlaubte Länge

TINYTEXT

256 Bytes

255 Zeichen

TEXT

64 Kilobytes

65.535 Zeichen

MEDIUMTEXT

16 Megabyte

16.777.215 Zeichen

LONGTEXT

4 Gigabyte

4.294.967.295 Zeichen

Im Grunde ist es so:

"Genaue Max. Erlaubte Länge" = "Ungefähre Länge" in Bytes - 1

Anmerkung: Bei der Verwendung von Multibyte-Zeichen (wie Arabisch, wo jedes arabische Zeichen 2 Bytes benötigt), muss die Spalte "Exact Max. Länge Erlaubt" für TINYTEXT kann bis zu 127 arabische Zeichen enthalten (Hinweis: Leerzeichen, Bindestriche, Unterstriche und andere Zeichen dieser Art sind 1-Byte-Zeichen).

143voto

Cristian Oana Punkte 1628

TINYTEXT: 256 Bytes
TEXT: 65.535 Bytes
MEDIUMTEXT: 16.777.215 Bytes
LONGTEXT: 4.294.967.295 Bytes

27voto

TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB

TINYTEXT ist ein String-Datentyp, der bis zu 255 Zeichen.

TEXT ist ein String-Datentyp, der bis zu 65,535 Zeichen. TEXT wird in der Regel für kurze Artikel verwendet.

LONGTEXT ist ein String-Datentyp mit einer maximalen Länge von 4,294,967,295 Zeichen. Verwenden Sie LONGTEXT wenn Sie einen umfangreichen Text speichern müssen, z. B. ein Kapitel eines Romans.

21voto

Blindy Punkte 59463

Nach Angaben von http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html ist die Grenze L + 2 bytes, where L < 2^16 oder 64k.

Sie sollten sich nicht um eine Begrenzung kümmern müssen, da es automatisch in Stücke aufgeteilt wird, die hinzugefügt werden, wenn die Zeichenkette wächst, so dass es nicht immer blind 64k verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X