Jeg vil gjerne vite hva den maksimale størrelsen er for en MySQL VARCHAR-type.
Jeg leste at maksimal størrelse er begrenset av radstørrelsen som er omtrent 65k. Jeg prøvde å sette feltet til 'varchar (20000)', men det står at det er for stort.
Jeg kunne sette den til varchar(10000)
. Hva er det nøyaktige maksimumet jeg kan sette det til?
Husk at MySQL har en maksimumsgrense for radstørrelsen.
Den interne representasjonen av en MySQL-tabell har en maksimal radstørrelsesgrense på 65 535 byte, ikke medregnet BLOB- og TEXT-typer. BLOB- og TEXT-kolonner bidrar bare med 9 til 12 byte mot radstørrelsesgrensen fordi innholdet deres lagres separat fra resten av raden. Les mer om Limits on Table Column Count and Row Size.
Maksimal størrelse en enkelt kolonne kan oppta, er forskjellig før og etter MySQL 5.0.3.
Verdier i VARCHAR-kolonner er strenger med variabel lengde. Lengden kan spesifiseres som en verdi fra 0 til 255 før MySQL 5.0.3, og 0 til 65 535 i 5.0.3 og senere versjoner. Den effektive maksimale lengden på en VARCHAR i MySQL 5.0.3 og nyere er avhengig av den maksimale radstørrelsen (65 535 byte, som deles mellom alle kolonnene) og tegnsettet som brukes.
Vær imidlertid oppmerksom på at grensen er lavere hvis du bruker et multi-byte tegnsett som utf8 eller utf8mb4.
Bruk TEXT
-typer for å overvinne radstørrelsesgrensen.
De fire TEKST-typene er TINYTEXT, TEXT, MEDIUMTEXT og LONGTEXT. Disse tilsvarer de fire BLOB-typene og har samme maksimumslengder og lagringskrav.
Flere detaljer om BLOB- og TEKST-typer.
Enda mer
Se mer informasjon på Data Type Storage Requirements som omhandler lagringskrav for alle datatyper.
du kan også bruke MEDIUMBLOB/LONGBLOB eller MEDIUMTEXT/LONGTEXT.
En BLOB-type i MySQL kan lagre opptil 65 534 byte, hvis du prøver å lagre mer enn dette, vil MySQL avkorte dataene. MEDIUMBLOB kan lagre opptil 16 777 213 byte, og LONGBLOB kan lagre opptil 4 294 967 292 byte.