2009-08-20 2 views

Antwort

18

In der Regel keine. text Spalten sind tatsächlich außerhalb der Reihe gespeichert, so dass sie nicht Platz in der Reihe an sich nehmen. Stattdessen behält die Zeile einen Zeiger auf die text Spalte (die tut nehmen Platz, aber nur 4 Bytes-ish (hängt vom System) eine Zeile), aber die text Spalte selbst bleibt leer, bis Sie es ausfüllen.

Jetzt werden varchar Spalten Speicherplatz für ihre maximale beim Einfügen zuweisen, sondern nur den Platz durch ihren Inhalt benötigt. char Spalten verwenden jedoch immer den angegebenen Speicherplatz. So, hier ist das, was jede Spalte sieht aus wie mit der Phrase „Waffeln“:

varchar(15): 'waffles' 
char(15): 'waffles  ' 
text:  'waffles' 

Hoffentlich, das hilft.

+1

gilt dies für alle Arten von Text, d. H. MediumText, LongText usw.? Ich benutze jetzt die inno-db Engine. Wollte auch bestätigen, wenn es irgendeine Art von Verdichtung, ich meine, wenn ich nur 10 Bytes in Textfeld, wird es etwas Verdichtung oder erwerben ganze 64 KB? – user2098324

Verwandte Themen