Požadavky: Během nedávného pohovoru se mě zeptali, jaký je rozdíl mezi SQL Server database int a guid jako hlavním klíčem.Obě mají své klady a zápory, prosím, zvažte je podle vašich skutečných obchodních situací。
Původní text 1:Přihlášení k hypertextovému odkazu je viditelné.
Výhody použití INT jako primárního klíče:
1. Vyžaduje malý úložný prostor, pouze 4 bajty.
2. Výkon použití INT pro vkládání a aktualizaci je lepší než u GUID, takže použití int zlepší výkon aplikace.
3. Indexování a spojení operací, int má nejlepší výkon.
4. Snadno si zapamatujete.
5. Podpora pro získání nejnovější hodnoty prostřednictvím funkce, například: Scope_Indentity().
Nevýhody použití INT jako primárního klíče
1. Pokud dochází k častému slučování tabulek, může dojít k duplikaci primárních klíčů.
2. Existují omezení v rozsahu využití dat INT. Pokud je dat velké, může překročit rozsah hodnoty INT.
3. Je obtížné zpracovávat distribuované uložené datové tabulky.
Výhody použití GUID jako primárního klíče:
1. Je jedinečný.
2. Příležitostí k duplikaci je jen málo.
3. Je vhodný pro vkládání a aktualizaci ve velkém množství dat.
4. Slučování dat mezi servery je velmi pohodlné.
Nevýhody použití GUID jako primárního klíče:
1. Úložný prostor je velký (16 bajtů), takže zabere větší velikost disku.
2. Je těžké si to zapamatovat. Výkon operace spojování je nižší než výkon int.
3. Neexistuje vestavěná funkce pro získání nejmladšího vygenerovaného primárního klíče GUID.
4. GUID jako primární klíč bude přidán k dalším indexům v tabulce, což sníží výkon.
Shrnutí:
Výše uvedené uvádí výhody a nevýhody datových typů GUID a INT jako primárních klíčů. Myslím, že pro velké objemy dat se doporučuje používat guid jako primární klíč. kdežtoPoužití int ti dá nejlepší výkon。
Komentář: PoužitíVýkon uspořádaných GUID se výrazně zlepšuje。
Původní text dva:Přihlášení k hypertextovému odkazu je viditelné.
Identita je celý typ typu, desítková bez desetinné definice, bigint je přijatelný
GUID je pevný binární(16), který má 16 bajtů
Identita se zvyšuje (nebo odečítá) a guid je náhodný, takže při vkládání datPrvní nevytváří žádné fragmenty, zatímco druhý ano, a protože druhý je mimo pořadí, je třeba pořadí upravit při vložení, takže první je obecně lepší z hlediska výkonu.
Velké množství informací je obvykle rozděleno do tabulek, takže identita je v mnoha případech stále vhodnější
Co se týče významu primárního klíče, záleží na tom, jak ho při návrhu vnímáte – pro samotné zpracování dat primární klíč nemusí být významný, a pokud vyžadujete, aby primární klíč obsahoval obchodní význam, pak je primární klíč identity samozřejmě bezvýznamný, ale obecně je lepší oddělit obchodní význam od zpracování dat, podnikání se neustále mění, pokud chcete význam přenést do hlavního klíče návrhu tabulky, pak se změní podnikání, budete muset strukturu tabulky více upravit.
Původní text tři:Přihlášení k hypertextovému odkazu je viditelné.
1. V systémech, které často potřebují migraci dat, se doporučuje používat Guid. A přidání ne-clusterovaných indexů do odpovídajících polí cizího klíče, tedy polí používaných pro dotazy na spojování, je velkým přínosem pro zlepšení výkonu. Pole podmínky kde lze také přidat podle potřeby pro ne-shlukované indexy.
2. Při použití typu Guid jako primárního klíče by měl být datový typ uniqueidentifier a nezapomeňte si ho zapamatovatZrušte primární klíč "Agregované indexy”
3. Pro systémy, které není třeba migrovat, nebo malé systémy, je stále velmi pohodlné používat int jako primární klíč a stále dochází k určitému zlepšení efektivity.
(Konec)
|