sql >> Databáze >  >> RDS >> Sqlserver

SQL Index - Rozdíl mezi char a int

Sloupce Integer / Identity se často používají pro primární klíče v databázových tabulkách z mnoha důvodů. Sloupce primárního klíče musí být jedinečné, neměly by být aktualizovatelné a skutečně by neměly mít smysl. Díky tomu je sloupec identity docela dobrou volbou, protože server za vás získá další hodnotu, musí být unikátní a celá čísla jsou relativně malá a použitelná (ve srovnání s GUID).

Někteří databázoví architekti budou tvrdit, že pro hodnoty primárního klíče by měly být použity jiné datové typy a že kritéria „nesmyslná“ a „neaktualizovatelná“ mohou být přesvědčivě argumentována na obou stranách. Bez ohledu na to jsou pole integer / identity docela pohodlná a mnoho návrhářů databází zjistilo, že vytvářejí vhodné klíčové hodnoty pro referenční integritu.

  1. Nejlepší volbou pro primární klíč jsou celočíselné datové typy, protože celočíselné hodnoty se zpracovávají rychleji než znakové datové typy. Znakový datový typ (jako primární klíč) je třeba před zpracováním převést na ekvivalentní hodnoty ASCII.
  2. Načítání záznamu na základě primárního klíče bude rychlejší v případě celých čísel jako primárních klíčů, protože to bude znamenat, že na jedné stránce bude přítomno více indexových záznamů. Celková doba vyhledávání se tak zkracuje. Také spojení bude rychlejší. To však bude použitelné v případě, že váš dotaz používá hledání clusteru indexu a nikoli skenování a pokud je použita pouze jedna tabulka. V případě, že sken nebude mít další sloupec, bude to znamenat více řádků na jedné datové stránce.

Snad vám to pomůže!



  1. MySQL Group By s nejvyšším N číslem každého druhu

  2. Existuje ekvivalent SQLite k DESCRIBE [tabulce] MySQL?

  3. Získejte výsledek z dynamického SQL v uložené proceduře

  4. Rozdělte více příkazů SQL na jednotlivé příkazy SQL