2010-01-18 13 views
27

this question Zweifel in meinem Kopf poped Lesen:MySQL - TEXT vs CHAR und VARCHAR

  • char und varchar zu 255 Zeichen speichern kann
  • Text 65k Zeichen speichern kann
  • char Größe in Byte Anzahl der Zeichen
  • VARCHAR Größe in Bytes ist die Anzahl der Zeichen verwendet + 1

Wie viel Bytes belegt TEXT eigentlich? ~ 65kb oder Anzahl der Zeichen verwendet + 1?

+5

http://stackoverflow.com/search?q=[mysql]+text+vs+varchar –

+0

Sehr guter Link, danke! –

+2

'varchar size in Bytes ist die Anzahl der verwendeten Zeichen + 1' Dies hängt von der in der Tabelle verwendeten Codierung ab. Es könnte zum Beispiel '((# von Zeichen) * 2) + 1 'für 2-Byte-Zeichen sein. Denken Sie daran, es ist die Anzahl der * Zeichen * nicht die Anzahl der * Bytes *. –

Antwort

24

TEXT ist ein Datentyp variabler Länge mit maximal 65.000 Zeichen.

LONGTEXT kann für über 4 Billionen Zeichen verwendet werden.

Um Ihre Frage zu beantworten: Es ist eine variable Länge, und es wird nur die Menge der Charaktere belegen, die Sie speichern.

+4

Plus ein wenig Overhead, um diese Länge anzuzeigen - und LONGTEXT hat mehr Overhead als TEXT hat mehr Overhead als VARCHAR. –

+3

True: "LONG" in "LONGTEXT" gibt tatsächlich an, wie viele Zeichen. Ein langer Wert ist 8 Bytes, also ist der Overhead 8 Bytes. Obwohl es unbedeutend ist, habe ich es nicht erwähnt. – Pindatjuh

+1

Logisch, TEXT wird auch als BLOB gespeichert –

7

TEXT belegt eine Zahl tatsächliche Länge Ihrer Daten + 2 Bytes.

+0

Soooo, wenn Sie 256 oder mehr Zeichen speichern, verbrauchen VARCHAR und TEXT die gleiche Menge an Speicherplatz? – rinogo