Tjek http://dev.mysql.com /doc/refman/5.7/da/string-type-overview.html
Dybest set alle disse typer undtagen CHAR
er variabel længde.
For eksempel, hvis du har VARCHAR(72)
og du skriver abcd
i det, vil du gemme 5 bytes. 4 bytes for hvert tegn og et præfiks på 1 byte til at gemme længden af strengen (som er 4).
Hvis længden af strengen er over 255 tegn, vil VARCHAR-præfikset være 2 bytes. Altså en VARCHAR(300)
med en streng på 256 tegn gemt i den fylder 258 bytes.
TINYTEXT
har altid et præfiks på 1 byte, fordi du kun kan gemme 255 tegn i det, så abcd
ville tage 5 bytes.
TEXT
har et præfiks på 2 byte, så abcd
ville være 6 bytes.
LONGTEXT
har et 4 byte præfiks, så abcd
ville være 8 bytes.
Til sidst er der den næsten ubrugelige CHAR
type. En CHAR(72)
vil altid fylde 72 bytes, uanset hvad du gemmer i den. Det er egentlig kun nyttigt for super korte felter, hvor der altid er nøjagtig det samme antal tegn i feltet. Som Y
eller N
ville være en god CHAR(1)
kandidat.