Verschil tussen Char en Varchar

Char vs Varchar
 

Char en Varchar zijn veelgebruikte tekengegevenstypen in het databasesysteem die er ongeveer hetzelfde uitzien, maar er zijn verschillen tussen deze typen als het gaat om opslagvereisten. Bij het ontwerpen van databases worden veel gegevenstypen gebruikt. Van hen krijgen karaktergegevenstypen een meer prominente plaats omdat ze worden gebruikt om veel informatie op te slaan in vergelijking met getallen. Karaktergegevenstypen worden gebruikt voor het opslaan van tekens of alfanumerieke gegevens in tekenreeksen. Het type database-tekenset wordt gedefinieerd bij het maken van de database. Nogmaals, Char en Varchar zijn de meest gebruikte karaktertypen. In dit artikel wordt uitgelegd wat deze twee gegevenstypen, char en varchar, zijn en wat het verschil is.

Wat is Char?

De ISO-definitie van char is a karakter en het char-gegevenstype is gewend om sla een personage op. Char (n) kan n vaste tekens opslaan. Het maximale aantal karakters dat een char (n) kan bevatten is 255 tekens en een stringlengte moet een waarde van 1 tot 8000 zijn. Char is vijftig procent sneller dan varchar en daarom kunnen we betere prestaties krijgen als we met werken char. Char gebruikt statische geheugentoewijzing bij het opslaan van gegevens. Wanneer we strings met een bekende vaste lengte willen opslaan, is het beter om de char te gebruiken. Als we bijvoorbeeld 'Ja' en 'Nee' opslaan als 'Y' en 'N', kunnen we het gegevenstype char gebruiken. En ook bij het opslaan van het nationale identiteitskaartnummer van een persoon met tien tekens, kunnen we het gegevenstype gebruiken als char (10).

Wat is Varchar?

Zoals de naam al doet vermoeden, wordt varchar een a genoemd variabel karakter. Varchar wordt gebruikt voor het opslaan van alfanumerieke gegevens met variabele lengten. Het maximale aantal tekens dat dit gegevenstype kan bevatten is 4000 tekens en de maximale opslagcapaciteit is 2 GB. De opslaggrootte van varchar is de werkelijke lengte van de gegevens plus twee bytes. Varchar is langzamer dan char en gebruikt dynamische geheugentoewijzing bij het opslaan van gegevens. We kunnen varchar gebruiken bij het opslaan van gegevens zoals namen, adressen, beschrijvingen, etc. Niet alleen strings, maar ook niet-stringtypen zoals datumtypen, "12 maart 2015", "12/03/2015" kunnen ook worden opgeslagen in het varchar-gegevenstype.

Wat is het verschil tussen Char en Varchar?

• Hoewel char en varchar karaktergegevensvelden zijn, is char een gegevensveld van vaste lengte en varchar een gegevensveld van variabele grootte.

• Char kan alleen tekenreeksen van niet-Unicode-reeksen met een vaste afmeting opslaan, maar varchar kan strings van variabele groottes opslaan.

• Char is beter dan varchar voor gegevens die vaak veranderen. Dit komt omdat de gegevensreeks met vaste lengte niet gevoelig is voor fragmentatie.

• Char bezet alleen de vaste ruimte die is gedefinieerd bij het declareren van de variabele. Maar varchar zal de ruimte innemen op basis van de gegevens die worden ingevoegd en ook zal deze 1 of 2 bytes als lengteprefix innemen.

• Als de gegevens minder dan 255 tekens zijn, wordt 1 byte toegewezen en als gegevens meer dan 255 tekens zijn, worden 2 bytes gereserveerd. Als we een char gebruiken om een ​​vlag van 'Y' en 'N' op te slaan, zal het één byte gebruiken om op te slaan, maar als we varchar gebruiken, hebben we twee bytes nodig om de vlag op te slaan inclusief een extra byte als lengteprefix.

Samenvatting:

Char vs Varchar

Char en varchar zijn het meest gebruikte personagetype dat beschikbaar is in databases. Char wordt gebruikt om een ​​string met een vaste lengte op te slaan, terwijl varchar wordt gebruikt om strings met variërende lengte op te slaan. Om de gegevens beter te laten presteren, is het belangrijker om de juiste gegevenstypen te kiezen voor de velden van de tabellen in uw database. Het is handiger om de kleinste gegevenstypen te gebruiken die de gegevens correct kunnen opslaan, omdat ze minder ruimte innemen uit het geheugen.

Afbeeldingen beleefdheid: Varchar via Wikicommons (Public Domain)