Chcę wiedzieć, czy typ danych mysql TEXT
rezerwuje dowolne miejsce, nawet jeśli nie ma danych w tym wierszu?Czy Mysql Text DataType rezerwuje dowolną przestrzeń pamięci
Jestem trochę zmieszany. Czy ktoś może mi w tym pomóc?
Chcę wiedzieć, czy typ danych mysql TEXT
rezerwuje dowolne miejsce, nawet jeśli nie ma danych w tym wierszu?Czy Mysql Text DataType rezerwuje dowolną przestrzeń pamięci
Jestem trochę zmieszany. Czy ktoś może mi w tym pomóc?
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.
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