Varchar vs Nvarchar
Varchar je krátký název pro pole proměnných znaků. Znaky představují data, která mají neurčitou délku. Varchar ve skutečném smyslu je typ datového sloupce, který se nachází v systémech správy databází. Velikost pole sloupců Varchar se může lišit v závislosti na zvažované databázi.
V Oracle 9i má pole maximální limit 4000 znaků. MySQL má datový limit 65 535 za řádek a server Microsoft SQL 2005 přichází s limitem pole 8000. Toto číslo může na serveru Microsoft SQL stoupnout, když je použit Varchar (max), což se zvyšuje na 2 gigabajty. Na druhou stranu Nvarchar je sloupec, do kterého lze ukládat libovolná délka dat Unicode. Kodasová stránka, kterou Nvarchar musí dodržovat, je 8bitové kódování. Maximální velikost pro Varchar je 8000, zatímco maximální velikost pro NVarchar je 4000. To ve skutečnosti znamená, že jeden sloupec Varchar může mít maximálně 8000 znaků a jeden sloupec Nvarchar může mít maximálně 4000 znaků. Překročení hodnot sloupců se stává obrovským problémem a může dokonce způsobit vážné problémy, protože řádky nemohou pokrývat více stránek, s výjimkou serveru SQL Server 2005, a musí být dodrženo toto omezení nebo dojde k chybám nebo zkrácení…
Jedním z hlavních rozdílů mezi Varcharem a Nvarcharem je využití méně místa ve Varcharu. Je to proto, že Nvarchar využívá Unicode, který kvůli problémům s kódováním specifik zabírá více místa. Pro každý uložený znak vyžaduje Unicode dva bajty dat, a to může způsobit, že hodnota dat vypadá ve srovnání s daty Unicode, která používá Varchar, vyšší. Na druhou stranu Varchar vyžaduje pouze jeden bajt dat pro každý uložený znak. A co je důležitější, i když použití Unicode zabírá více místa, řeší problémy vzniklé v důsledku nekompatibility kódové stránky, které jsou bolestí, kterou lze vyřešit ručně.
Prostorový prvek lze tedy přehlížet přednostně za kratší dobu, kterou Unicode potřebuje k vyřešení vznikajících nekompatibilit. Také náklady na disky a paměť se staly poměrně cenově dostupnými, což zajišťuje, že prostorové funkce lze často přehlížet, zatímco delší dobu potřebnou k vyřešení vznikajících problémů s Varcharem nelze tak snadno zrušit.
Všechny vývojové platformy interně používají moderní operační systémy, což umožňuje běh Unicode. To znamená, že Nvarchar se používá častěji než Varchar. Je zabráněno kódování konverzí, což zkracuje dobu potřebnou ke čtení a zápisu do databáze. To také významně snižuje chyby, přičemž obnovení chyb při převodu, ke kterým dojde, se stává jednoduchým problémem.
Výhoda používání Unicode platí také pro lidi, kteří používají aplikační rozhraní ASCII, protože databáze dobře reaguje, zejména operační systém a algoritmy koalice databáze. Data Unicode se vyhýbají problémům s převodem a data mohou být vždy validována, pokud jsou omezena na 7bitový ASCII, bez ohledu na starší systém, který musí být udržován.
souhrn
Varchar a Nvarchar přicházejí s různými typy znaků. Varchar využívá data, která nejsou Unicode, zatímco Nvarchar využívá data Unicode.
Varchar i Nvarchar mají různé typy dat, které je třeba dodržovat. Varchar ukládá data pouze v 1 bajtové posloupnosti a Nvarchar ukládá data ve 2 bajtech pro každý znak
Maximální délka se také liší. Délka varchar je omezena na 8000 bytů a 4000 bytů je limit pro Nvarchar.
Důvodem je to, že velikost úložiště ve Varchar je přímější než data Unicode používaná Nvarcharem.