2011-07-01 7 views
7

Jestem świadomy, że ponieważ MySQL 5, VARCHAR może mieć długość do 65 000. VARCHAR jest przechowywany w linii, co oznacza szybsze pobieranie, w przeciwieństwie do TEXT, który jest przechowywany na zewnątrz stołu. Powiedział, że dokumentacja stwierdza, że ​​MySQL będzie traktować LONG VARCHAR dokładnie TEXT.W którym momencie MySQL zaczyna traktować colony VARCHAR, takie jak TEXT cols?

Według this Source:

Od przyszłego przechowywania BLOB, tekst jako jak długo VARCHAR są obsługiwane przez tę samą drogę InnoDB. Z tego powodu instrukcja Innodb nazywa to "długimi kolumnami" raczej niż obiektami BLOB.

Kiedy MySQL zaczyna traktować VARCHAR jak TEKST? Na jakiej liczbie znaków MySQL dokonuje tego rozróżnienia, a VARCHAR przestaje być zapisywany w linii?

+1

na oko, to sobie wyobrazić, byłoby po 'VARCHAR' przesuwa się w długim formacie, który byłby po to wykracza poza starszym limitu, który był 255 znaków wierzę - sprawdź stary limit. – Orbling

Odpowiedz

5

Krótka odpowiedź: "DŁUGA" VARCHAR jest normalną VARCHAR i będzie wstawiana.

MySQL nie zacznie magicznie traktować prostej VARCHAR jako typu tekstowego. To zawsze będzie przechowywane inline. W wersji 5.0.3 górny limit dla VARCHAR został zmniejszony do 65 535 bajtów. Zajmują także 2 bajty nagłówka, jeśli mają ponad 255 znaków. Ten limit jest nadal stosowany do maksymalnego rozmiaru wiersza 65 535 bajtów. DŁUGA VARCHAR to w rzeczywistości inny typ, który cofa się do MEDIUMTEXT.

Patrz: http://dev.mysql.com/doc/refman/5.0/en/char.html i http://dev.mysql.com/doc/refman/5.0/en/blob.html