TEXT
data-objecten, zoals hun naam aangeeft, zijn handig voor het opslaan van lange tekstreeksen in een MySQL-database. De vier TEXT
typen gegevensobjecten zijn gebouwd voor het opslaan en weergeven van aanzienlijke hoeveelheden informatie, in tegenstelling tot andere typen gegevensobjecten die handig zijn bij taken zoals het sorteren en doorzoeken van kolommen of het afhandelen van kleinere, op configuratie gebaseerde opties voor een groter project. De verschillende TEXT
objecten bieden een opslagruimte van 1 byte tot 4 GB en zijn niet ontworpen voor het opslaan van rekenwaarden. Deze worden vaak gebruikt om productbeschrijvingen op te slaan voor een verkoopsite, vastgoedsamenvattingen voor een vastgoeddatabase en lange artikeltekst op een nieuwswebsite. TEXT
objecten kunnen het beste worden gebruikt wanneer VARCHAR
en andere op strings gebaseerde data-objecten zijn onvoldoende om de gewenste hoeveelheid informatie op te slaan. Echter, de kleinste TEXT
type, TINYTEXT
, deelt dezelfde tekenlengte als VARCHAR
. TEXT
objecten onderscheiden zich van andere typen stringopslag door de eis om een opslaglengte te specificeren te verwijderen, bytes niet te strippen wanneer ze zijn geselecteerd, en geen ongebruikte tekenruimte op te vullen voor efficiënte schijfopslag. Sinds TEXT
objecten worden niet opgeslagen in het geheugen van de server, ze vereisen gegevensoverhead voor het ophalen. Bij de volgende formaten wordt ervan uitgegaan dat de database de UTF-8-codering gebruikt.
TINYTEXT:255 tekens - 255 B
De TINYTEXT
data-object is de kleinste van de TEXT
familie en is gebouwd om korte informatiereeksen efficiënt op te slaan. Dit type kan maximaal 255 bytes (uitgedrukt als 2^8 -1) of 255 tekens bevatten en vereist een overhead van 1 byte. Dit object kan worden gebruikt om zaken als korte samenvattingen, URL-links en andere kortere objecten op te slaan. TINYTEXT
schijnt over VARCHAR
bij het opslaan van gegevens van minder dan 255 tekens met een inconsistente lengte en die niet hoeven te worden gebruikt voor sorteercriteria.
TEKST:65.535 tekens - 64 KB
De standaard TEXT
data-object voldoende in staat is om typische lange tekstinhoud te verwerken. TEXT
data-objecten hebben een maximum van 64 KB (uitgedrukt als 2^16 -1) of 65.535 tekens en vereisen een overhead van 2 bytes. Het is groot genoeg om tekst voor zoiets als een artikel te bevatten, maar zou niet voldoende zijn om de tekst van een heel boek te bevatten.
MEDIUMTEXT:16.777.215 - 16 MB
De MEDIUMTEXT
data-object is handig voor het opslaan van grotere tekstreeksen zoals whitepapers, boeken en codeback-up. Deze gegevensobjecten kunnen zo groot zijn als 16 MB (uitgedrukt als 2^24 -1) of 16.777.215 tekens en vereisen 3 bytes overheadopslag.
LONGTEXT:4.294.967.295 tekens - 4 GB
De LONGTEXT
data-object is bedoeld voor gebruik in extreme gevallen van opslag van tekstreeksen. Het is een haalbare optie wanneer de MEDIUMTEXT
object is niet groot genoeg. Computerprogramma's en applicaties bereiken vaak tekstlengtes in de LONGTEXT
bereik. Deze data-objecten kunnen zo groot zijn als 4 GB (uitgedrukt als 2^32 -1) en tot 4.294.967.295 tekens opslaan met 4 bytes overheadopslag,
TEKST versus BLOB
BLOB
s zijn een alternatief type gegevensopslag dat overeenkomende naamgevings- en capaciteitsmechanismen deelt met TEXT
voorwerpen. Echter, BLOB
s zijn binaire tekenreeksen zonder sortering van tekensets, dus worden ze behandeld als numerieke waarden terwijl TEXT
objecten worden behandeld als tekenreeksen. Deze differentiatie is belangrijk voor het sorteren van informatie. BLOB
s worden gebruikt om gegevensbestanden zoals afbeeldingen, video's en uitvoerbare bestanden op te slaan.
Gebruiksopmerkingen
- Gebruik
TEXT
velden voor selectie- en zoekquery's zullen prestatiehits opleveren omdat de server de objecten afzonderlijk zal aanroepen en ze tijdens de query zal scannen in plaats van in het geheugen opgeslagen pagineringsgegevens. - Als u strikte SQL inschakelt, worden de maximale tekenlengtes afgedwongen en worden alle ingevoerde gegevens die deze limieten overschrijden afgekapt.
TEXT
kolommen vereisen een lengte van het indexvoorvoegsel en mogen geenDEFAULT
. hebben waarden, in tegenstelling totCHAR
enVARCHAR
objecten.- De grootte schatten op basis van het aantal woorden:neem aan dat het gemiddelde Engelse woord 4,5 letters lang is en 1 extra teken nodig heeft voor spatiëring. Een site die bestaat uit artikelen van 500 woorden, zou bijvoorbeeld gemiddeld ongeveer 2.750 tekens gebruiken voor de artikeltekstgegevens.
TINYTEXT
’s capaciteit van 255 tekens is onvoldoende voor dit gebruik, terwijlTEXT
De capaciteit van 65535 tekens biedt opslagruimte voor artikelen die meer dan 11.900 woorden bevatten op basis van de gemiddelde criteria.