sql >> Database >  >> RDS >> Mysql

Opslaggroottes voor MySQL TEXT-gegevenstypen begrijpen

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 geen DEFAULT . hebben waarden, in tegenstelling tot CHAR en VARCHAR 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, terwijl TEXT De capaciteit van 65535 tekens biedt opslagruimte voor artikelen die meer dan 11.900 woorden bevatten op basis van de gemiddelde criteria.

  1. Een databasenaam in SQL Server wijzigen met T-SQL

  2. SQL SELECTEER MIN

  3. Problemen met MySQL-prestaties identificeren met trage zoekopdrachten

  4. MySQL - Herstel gedropte prestatieschemadatabase