2009-08-20 7 views

Odpowiedz

18

Zazwyczaj nie. text kolumny są rzeczywiście przechowywane z dala od rzędu, więc nie zajmują miejsca w rzędzie, per se. Zamiast tego wiersz przechowuje wskaźnik do kolumny text (która zajmuje miejsce, ale tylko 4 bajty-ish (w zależności od systemu) w wierszu), ale kolumna text sama pozostanie pusta, dopóki jej nie zapełnisz.

Teraz, kolumny varchar przydzielają miejsce dla ich maksimum przy wstawianiu, ale zajmują tylko przestrzeń potrzebną do jej zawartości. char kolumny, jednak zawsze będą korzystać z określonego miejsca. Oto, jak wygląda kolumna z wyrażeniem "gofry":

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

Mamy nadzieję, że to pomoże.

+1

czy to prawda w przypadku wszystkich rodzajów tekstu, np. MediumText, LongText itp? Na razie używam silnika inno-db. Chciałem również potwierdzić, że ma on jakiekolwiek zagęszczenie, tzn. Jeśli umieściłbym tylko 10 bajtów w polu tekstowym, czy zrobi to jakieś zagęszczenie lub zdobędzie całe 64 KB? – user2098324

Powiązane problemy