2010-02-18 11 views

Odpowiedz

36

Nie można przypisać wartości DEFAULT do wartości TINYTEXT i nie można utworzyć indeksu bez poprawki.

Wewnętrznie, dodatkowe obiekty są przydzielane w pamięci do obsługi kolumn TEXT (w tym TINYTEXT), które mogą powodować fragmentację pamięci w dużych zestawach rekordów.

Należy zauważyć, że dotyczy to tylko wewnętrznej reprezentacji kolumny w zestawach rekordów, a nie sposobu ich przechowywania na dysku.

+0

gdy mysql potrzebuje do tabeli tymczasowej, jeśli blob lub tekst (inc. tinytext) używa dysku zamiast pamięci do utworzenia tabeli tymczasowej – andho

+8

Który z nich jest tańszy (cykle czasowe i procesora) do wyszukiwania? – Medorator

5

Korzystanie VARCHAR można ustawić kolumny NULL lub NOT NULL i można ustawić DEFAULT wartość, ale nie z TEXT. Użyj VARCHAR, jeśli potrzebujesz jednej lub obu funkcji, NULL i DEFAULT.

+3

Kolumna TINYTEXT może mieć również wartość NULL. – planetp

+0

Ale nie domyślnie –

-2

w varchar trzeba ustawić długość charakterze natomiast w tanytext nie ma jak to oszczędza pamięć bazy danych dla Ex:

na adres trzeba zdefiniować varchar (50) niż adres może wynosić 50 znaków lub mniej, gorszy warunek to twoja postać więcej niż 50 znaków, to jest ograniczenie varchar jeśli znak jest mniejszy niż 50 niż zajmuje pamięć 50 znaków, w tym przypadku pamięć zwiększa się o

więc użyj tanytext określa długość znaku w zależności od wielkości znaku, dzięki czemu pamięć zostaje zapisana

+0

To jest złe. Varchar używa tylko tyle pamięci, ile długości tego, co jest aktualnie przechowywane (w przeciwieństwie do char). Zobacz http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html – viblo

+0

Cześć viblo, w varcharze definiujemy wstępnie długość łańcucha, który zajmuje pamięć do zdefiniowanego limitu. nie dotyczy to tanytekstu. – nilesh

+0

Nie rozumiem o co ci chodzi. Dokumentacja MySQL mówi, że varchar wymaga "L + 1 bajtów, jeśli wartości kolumn wymagają 0 - 255 bajtów, L + 2 bajty, jeśli wartości mogą wymagać więcej niż 255 bajtów" gdzie L jest rzeczywistą długością przechowywanego tekstu, a nie tym, co zdefiniował varchar jako maksymalną długość. – viblo

Powiązane problemy