Char vs Varchar
Char ja Varchar on andmebaasisüsteemis tavaliselt kasutatavad tähemärgi andmetüübid, mis näevad välja sarnased, kuigi salvestusnõuete osas on nende vahel erinevusi. Andmebaasi kujundamisel kasutatakse palju andmetüüpe. Neist tähemärgi andmetüübid saavad silmatorkavama koha, kuna neid kasutatakse numbritega võrreldes palju teabe salvestamiseks. Märgiandmete tüüpe kasutatakse tähemärkide või tähtnumbriliste andmete stringidesse salvestamiseks. Andmebaasi loomisel määratakse andmebaasi märgistiku tüüp. Jällegi on nendest tähemärgi andmetüüpidest Char ja Varchar tavaliselt kasutatavad. Selles artiklis selgitatakse, mis on need kaks andmetüüpi, char ja varchar, ning nende erinevust.
Mis on Char?
ISO definitsioon char on tähemärk ja char andmetüüpi kasutatakse märgi salvestamiseks. Char (n) saab salvestada n kindla suurusega tähemärki. Maksimaalne märkide arv, mida char (n) mahutab, on 255 tähemärki ja stringi pikkus peab olema väärtus vahemikus 1 kuni 8000. Char on viiskümmend protsenti kiirem kui varchar ja seetõttu saame parema esituse töötades char. Char kasutab andmete salvestamisel staatilist mälumahtu. Kui tahame säilitada kindla pikkusega stringe, on parem kasutada sümboli. Näiteks „Jah” ja „Ei” kui „Y” ja „N” salvestamisel saame kasutada andmetüüpi char. Ja ka kümne tähemärgiga isiku riikliku isikutunnistuse numbri salvestamisel võime andmetüüpi kasutada märgina (10).
Mis on Varchar?
Nagu nimigi ütleb, nimetatakse varcharit muutuvaks tähemärgiks. Varcharit kasutatakse muutuva pikkusega tähtnumbriliste andmete salvestamiseks. Maksimaalne märkide arv, mida see andmetüüp mahutab, on 4000 tähemärki ja maksimaalne salvestusmaht on 2 GB. Varchari salvestusmaht on andmete tegelik pikkus pluss kaks baiti. Varchar on aeglasem kui char ja ta kasutab andmete salvestamisel dünaamilist mälu jaotust. Varcharit saab kasutada selliste andmete nagu nimed, aadressid, kirjeldused jne salvestamisel. Lisaks stringidele, aga ka stringideta tüüpidele, näiteks kuupäeva tüübid, “12. märts 2015”, “2015-03-12”, saab salvestada ka varchari andmetüüp.
Mis vahe on Charil ja Varcharil?
• Kuigi char ja varchar on tähemärgi andmeväljad, on char kindla pikkusega andmeväli ja varchar on muutuva suurusega andmeväli.
• Char võib salvestada ainult fikseeritud suurusega mitte-Unicode stringimärke, kuid varchar - muutuva suurusega stringe.
• Sageli muutuvate andmete korral on Char parem kui varchar. Seda seetõttu, et fikseeritud pikkusega andmerida ei ole killustatud.
• Char hõivab ainult muutuja deklareerimisel määratletud kindla ruumi. Kuid varchar hõivab sisestatud andmete põhjal ruumi ja ka pikkuse eesliitena 1 või 2 baiti.
• Kui andmed on vähem kui 255 tähemärki, eraldatakse 1 bait ja kui andmeid on rohkem kui 255 tähemärki, on reserveeritud 2 baiti. Kui kasutame tähte „Y” ja „N” lipu salvestamiseks sümboli abil, kasutab see ühe baidi salvestamiseks, kuid varchari kasutamisel kulub lipu salvestamiseks kaks baiti, sealhulgas pikkuse eesliitena lisabait.
Kokkuvõte:
Char vs Varchar
Char ja varchar on andmebaasides kõige enam kasutatav märkide andmetüüp. Char-d kasutatakse kindla pikkusega stringi salvestamiseks, varcharit aga erineva pikkusega stringide salvestamiseks. Andmete parema jõudluse saavutamiseks on olulisem valida oma andmebaasis olevate tabeliväljade jaoks õiged andmetüübid. Mugavam on kasutada kõige väiksemaid andmetüüpe, mis suudavad andmeid õigesti salvestada, kuna need võtavad mälust vähem ruumi.
Piltide viisakus: Varchar Wikicommonsi kaudu (avalik domeen)