sql >> Database teknologi >  >> RDS >> Mysql

Forstå lagringsstørrelser for MySQL TEXT-datatyper

TEXT dataobjekter, som deres navnebror antyder, er nyttige til lagring af langformede tekststrenge i en MySQL-database. De fire TEXT dataobjekttyper er bygget til lagring og visning af betydelige mængder information i modsætning til andre dataobjekttyper, der er nyttige med opgaver som sortering og søgning i kolonner eller håndtering af mindre konfigurationsbaserede muligheder for et større projekt. De forskellige TEXT objekter tilbyder en række lagerplads fra 1 byte til 4 GB og er ikke designet til lagring af beregningsværdier. Det er almindeligt at se disse bruges til at gemme produktbeskrivelser for et salgssted, ejendomsresuméer til ejendomsdatabase og lang artikeltekst på et nyhedswebsted. TEXT objekter bruges bedst, når VARCHAR og andre strengbaserede dataobjekter er utilstrækkelige til at håndtere lagring af den ønskede mængde information. Dog den mindste TEXT type, TINYTEXT , deler den samme tegnlængde som VARCHAR . TEXT objekter adskiller sig fra andre strenglagringstyper ved at fjerne kravet om at angive en lagerlængde, ikke strippe bytes, når de er valgt, og ikke udfylde ubrugt tegnplads for effektiv disklagring. Siden TEXT objekter er ikke lagret i serverens hukommelse, de kræver dataoverhead for at kunne hentes. Følgende størrelser antager, at databasen bruger UTF-8-kodning.

TINYTEXT:255 tegn - 255 B

TINYTEXT dataobjekt er det mindste af TEXT familie og er bygget til effektivt at gemme korte informationsstrenge. Denne type kan gemme op til 255 bytes (udtrykt som 2^8 -1) eller 255 tegn og kræver en overhead på 1 byte. Dette objekt kan bruges til at gemme ting som korte resuméer, URL-links og andre kortere objekter. TINYTEXT lyser over VARCHAR ved lagring af data, der er under 255 tegn med en inkonsekvent længde og ikke behøver at blive brugt til sorteringskriterier.

TEKST:65.535 tegn - 64 KB

Standarden TEXT dataobjekt er tilstrækkeligt i stand til at håndtere typisk tekstindhold i lang form. TEXT dataobjekter topper med 64 KB (udtrykt som 2^16 -1) eller 65.535 tegn og kræver en overhead på 2 byte. Den er tilstrækkelig stor nok til at indeholde tekst til noget som en artikel, men ville ikke være tilstrækkelig til at indeholde teksten i en hel bog.

MEDIUMTEXT:16.777.215 - 16 MB

MEDIUMTEXT dataobjekt er nyttigt til at gemme større tekststrenge som hvidbøger, bøger og kodebackup. Disse dataobjekter kan være så store som 16 MB (udtrykt som 2^24 -1) eller 16.777.215 tegn og kræver 3 bytes overheadlager.

LONGTEXT:4.294.967.295 tegn - 4 GB

LONGTEXT dataobjekt er til brug i ekstreme tilfælde af tekststrenglagring. Det er en levedygtig mulighed, når MEDIUMTEXT objektet ikke er stort nok. Computerprogrammer og applikationer når ofte tekstlængder i LONGTEXT rækkevidde. Disse dataobjekter kan være så store som 4 GB (udtrykt som 2^32 -1) og gemme op til 4.294.967.295 tegn med 4 bytes overheadlager,

TEXT vs. BLOB

BLOB s er en alternativ type datalagring, der deler matchende navngivnings- og kapacitetsmekanismer med TEXT genstande. Dog BLOB s er binære strenge uden tegnsætsortering, så de behandles som numeriske værdier, mens TEXT objekter behandles som tegnstrenge. Denne differentiering er vigtig for sortering af information. BLOB s bruges til at gemme datafiler som billeder, videoer og eksekverbare filer.

Noter om brug

  • Ved brug af TEXT felter for udvælgelse og søgeforespørgsler vil medføre ydeevnehits, fordi serveren kalder objekterne individuelt og scanner dem under forespørgslen i stedet for at sidesøge data, der er gemt i hukommelsen.
  • Aktivering af streng SQL vil håndhæve de maksimale tegnlængder og afkorte alle indtastede data, der overskrider disse grænser.
  • TEXT kolonner kræver en indekspræfikslængde og kan ikke have DEFAULT værdier, i modsætning til CHAR og VARCHAR genstande.
  • Estimeret størrelse efter ordantal:antag, at det gennemsnitlige engelske ord er 4,5 bogstaver langt og skal bruge 1 ekstra tegn til mellemrum. Eksempelvis vil et websted, der består af 500 ordartikler, bruge omkring 2.750 tegn i gennemsnit til artiklens tekstdata. TINYTEXT 's kapacitet på 255 tegn er utilstrækkelig til denne brugssituation, mens TEXT 's 65535 tegnkapacitet tilbyder lagerplads til artikler, der rammer over 11.900 ord baseret på gennemsnitskriterierne.

  1. Oversigt over DBCC SHRINKFILE Command

  2. Parametrér en SQL IN-sætning

  3. AMD EPYC-processorer i virtuelle Azure-maskiner

  4. Lagre billeder i SQL Server?