sql >> Databasteknik >  >> RDS >> Mysql

Förstå lagringsstorlekar för MySQL TEXT-datatyper

TEXT dataobjekt, som deras namne antyder, är användbara för att lagra långa textsträngar i en MySQL-databas. De fyra TEXT dataobjekttyper är byggda för att lagra och visa avsevärda mängder information i motsats till andra dataobjekttyper som är användbara med uppgifter som att sortera och söka efter kolumner eller hantera mindre konfigurationsbaserade alternativ för ett större projekt. De olika TEXT objekt erbjuder ett lagringsutrymme från 1 byte till 4 GB och är inte designade för att lagra beräkningsvärden. Det är vanligt att dessa används för att lagra produktbeskrivningar för en försäljningswebbplats, fastighetssammanfattningar för fastighetsdatabas och långformad artikeltext på en nyhetswebbplats. TEXT objekt används bäst när VARCHAR och andra strängbaserade dataobjekt är otillräckliga för att hantera lagring av den önskade mängden information. Men den minsta TEXT typ, TINYTEXT , delar samma teckenlängd som VARCHAR . TEXT objekt skiljer sig från andra stränglagringstyper genom att ta bort kravet på att ange en lagringslängd, inte ta bort bytes när de väljs, och inte fylla ut oanvänt teckenutrymme för effektiv disklagring. Sedan TEXT objekt lagras inte i serverns minne, de kräver dataoverhead för hämtning. Följande storlekar antar att databasen använder UTF-8-kodning.

TINYTEXT:255 tecken - 255 B

TINYTEXT dataobjektet är det minsta av TEXT familj och är byggd för att effektivt lagra korta informationssträngar. Denna typ kan lagra upp till 255 byte (uttryckt som 2^8 -1) eller 255 tecken och kräver 1 byte overhead. Det här objektet kan användas för att lagra saker som korta sammanfattningar, URL-länkar och andra kortare objekt. TINYTEXT lyser över VARCHAR när du lagrar data som är mindre än 255 tecken med en inkonsekvent längd och som inte behöver användas för sorteringskriterier.

TEXT:65 535 tecken - 64 KB

Standarden TEXT dataobjektet är tillräckligt kapabelt att hantera typiskt långformat textinnehåll. TEXT dataobjekt toppar ut vid 64 KB (uttryckt som 2^16 -1) eller 65 535 tecken och kräver en 2 byte overhead. Det är tillräckligt stort för att innehålla text för något som en artikel, men skulle inte vara tillräckligt för att innehålla texten i en hel bok.

MEDIUMTEXT:16 777 215 - 16 MB

MEDIUMTEXT dataobjekt är användbart för att lagra större textsträngar som vitböcker, böcker och säkerhetskopiering av kod. Dessa dataobjekt kan vara så stora som 16 MB (uttryckt som 2^24 -1) eller 16 777 215 tecken och kräver 3 byte lagringsutrymme.

LONGTEXT:4 294 967 295 tecken - 4 GB

LONGTEXT dataobjekt är för användning i extrema fall av textstränglagring. Det är ett genomförbart alternativ när MEDIUMTEXT objektet är inte tillräckligt stort. Datorprogram och applikationer når ofta textlängder i LONGTEXT räckvidd. Dessa dataobjekt kan vara så stora som 4 GB (uttryckt som 2^32 -1) och lagra upp till 4 294 967 295 tecken med 4 byte lagringsutrymme,

TEXT vs. BLOB

BLOB s är en alternativ typ av datalagring som delar matchande namn- och kapacitetsmekanismer med TEXT föremål. Men BLOB s är binära strängar utan teckenuppsättningssortering, så de behandlas som numeriska värden medan TEXT objekt behandlas som teckensträngar. Denna differentiering är viktig för att sortera information. BLOB s används för att lagra datafiler som bilder, videor och körbara filer.

Anmärkningar för användning

  • Med TEXT fält för urval och sökfrågor kommer att få prestandaträffar eftersom servern kommer att anropa objekten individuellt och skanna dem under sökningen istället för att växla data som lagras i minnet.
  • Att aktivera strikt SQL kommer att upprätthålla den maximala teckenlängden och trunkera all inmatad data som överskrider dessa gränser.
  • TEXT kolumner kräver en indexprefixlängd och kan inte ha DEFAULT värden, till skillnad från CHAR och VARCHAR objekt.
  • Uppskatta storlek efter ordantal:anta att det genomsnittliga engelska ordet är 4,5 bokstäver långt och behöver 1 extra tecken för mellanrum. Exempelvis skulle en webbplats som består av artiklar på 500 ord använda cirka 2 750 tecken i genomsnitt för artikeltextdata. TINYTEXT Kapaciteten på 255 tecken är otillräcklig för detta användningsfall, medan TEXT 65535 teckenkapacitet erbjuder lagring för artiklar som träffar över 11 900 ord baserat på genomsnittliga kriterier.

  1. Databasbelastningsbalansering med ProxySQL &AWS Aurora

  2. Hur mycket storlek Null-värdet tar i SQL Server

  3. Hur infogar jag en byte[] i en SQL Server VARBINARY-kolumn

  4. Är det verkligen nödvändigt att skapa SQLite-tabeller varje gång programmet startar?