Der er forskellige steder, hvor VARCHAR
og TEXT
gøre eller ikke adskille sig. Nogle ting siger jeg:
- Hvis den maksimale længde er mere end 512 tegn , gå med
TEXT
. - Brug aldrig
TINYTEXT
-- den har kun negativer i forhold tilVARCHAR(255)
. - Brug ikke
VARCHAR(255)
; vælg et rimeligt maks. i stedet for 255. (Dette er en mindre optimering i forbindelse med midlertidig tabel i komplekse forespørgsler.) - Brug
CHAR
kun for ting, der er virkelig fast længde. I næsten alle sådanne tilfælde skal du slå påCHARACTER SET ascii
(eller latin1). (Ellers vil det tage mere plads, end du forventer. - Brug
CHARACTER SET ut8mb4
. (Undtagelser bliver mere og mere sjældne.)
(Beklager, jeg afviger. Tilbage til emnet...)
I-indeksering, i layout af InnoDB-rækker (der er 4 forskellige ROW_FORMATs
), osv., VARCHAR(513)
vil stort set ikke kunne skelnes fra TEXT
.
Et af de få argumenter for VARCHAR
er, at det begrænser butikken til den opgivne længde. Men hvor ofte er det vigtigt?