Char mot Varchar
Char och Varchar är vanligt förekommande karaktärsdatatyper i databassystemet som ser lika ut men det finns skillnader mellan dem när det gäller lagringskrav. I databasutformningen används många datatyper. Av dem får karaktärsdatatyper en mer framträdande plats eftersom de används för att lagra mycket information jämfört med siffror. Teckendatatyper används för att lagra tecken eller alfanumeriska data i strängar. Typen av databasteckenuppsättning definieras när databasen skapas. Återigen, av dessa typdatatyper är Char och Varchar de vanligaste. Den här artikeln förklarar vad dessa två datatyper, char och varchar är och skillnaden mellan dem.
Vad är Char?
ISO-definitionen av char är ett tecken och char-datatypen används för att lagra ett tecken. Char (n) kan lagra n fast storlek på tecken. Det maximala antalet tecken som en char (n) kan innehålla är 255 tecken och en stränglängd måste vara ett värde från 1 till 8000. Char är femtio procent snabbare än varchar och därför kan vi få bättre prestanda när vi arbetar med röding. Char använder statisk minnestilldelning vid lagring av data. När vi vill lagra strängar med en känd fast längd är det bättre att använda röding. Som ett exempel kan vi använda datatypen char när vi lagrar 'Ja' och 'Nej' som 'Y' och 'N'. Och även när vi lagrar en persons nationella identitetskortnummer med tio tecken kan vi använda datatypen som char (10).
Vad är Varchar?
Som namnet antyder kallas varchar en variabel karaktär. Varchar används för att lagra alfanumeriska data som har varierande längder. Det maximala antalet tecken som den här datatypen kan innehålla är 4000 tecken och den maximala lagringsstorleken är 2 GB. Lagringsstorleken för varchar är den faktiska längden på datan plus två byte. Varchar är långsammare än char och den använder dynamisk minnestilldelning vid lagring av data. Vi kan använda varchar när vi lagrar data som namn, adresser, beskrivningar etc. Inte bara strängar utan även icke-strängtyper som datumtyper,”12 mars 2015”,”2015-03-12” kan också lagras i varchar-datatypen.
Vad är skillnaden mellan Char och Varchar?
• Även om char och varchar är teckendatafält, är char ett datafält med fast längd och varchar är ett datafält med variabel storlek.
• Char kan endast lagra icke-Unicode-strängtecken i fast storlek, men varchar kan lagra variabla strängstorlekar.
• Char är bättre än varchar för data som ofta ändras. Detta beror på att den fasta raden med data inte är benägen för fragmentering.
• Char tar bara det fasta utrymmet som definieras när variabeln deklareras. Men varchar upptar utrymmet baserat på de data som infogas och det kommer också att uppta 1 eller 2 byte som längdprefix.
• Om data är mindre än 255 tecken, tilldelas 1 byte och om data är mer än 255 tecken reserveras 2 byte. Om vi använder en röd char för att lagra en 'Y' och 'N' kommer den att använda en byte för att lagra, men när vi använder varchar tar det två byte att lagra flaggan inklusive en extra byte som längdprefix.
Sammanfattning:
Char mot Varchar
Char och varchar är den mest använda karaktärsdatatypen som finns i databaser. Char används för att lagra en sträng med en fast längd medan varchar används för att lagra strängar som har varierande längd. För att få bättre prestanda från data är det viktigare att välja rätt datatyper för fälten i tabellerna i din databas. Det är bekvämare att använda de minsta datatyperna som kan lagra data korrekt, eftersom de tar mindre utrymme från minnet.
Bilder med tillstånd: Varchar via Wikicommons (Public Domain)