Požiadavky: Počas nedávneho pohovoru sa ma pýtali, aký je rozdiel medzi SQL Server database int a guid ako hlavným kľúčom.Obe majú svoje výhody a nevýhody, prosím, zvážte ich podľa vašich skutočných obchodných situácií。
Pôvodný text 1:Prihlásenie na hypertextový odkaz je viditeľné.
Výhody použitia INT ako primárneho kľúča:
1. Vyžaduje malý úložný priestor, iba 4 bajty.
2. Výkon použitia INT pri vkladaní a aktualizácii je lepší ako pri GUID, takže použitie int zlepší výkon aplikácie.
3. Indexové a spojovacie operácie, int má najlepší výkon.
4. Ľahko zapamätateľné.
5. Podpora na získanie najnovšej hodnoty cez funkciu, napríklad: Scope_Indentity().
Nevýhody použitia INT ako primárnej tóniny
1. Ak dochádza k častému zlučovaniu tabuliek, môže dôjsť k duplikácii primárnych kľúčov.
2. Existujú obmedzenia v rozsahu používania INT údajov. Ak je veľa dát, môže prekročiť rozsah hodnôt INT.
3. Je ťažké spracovať distribuované uložené dátové tabuľky.
Výhody použitia GUID ako primárneho kľúča:
1. Je jedinečný.
2. Je málo príležitostí na duplicitu.
3. Je vhodný na vkladanie a aktualizáciu vo veľkom množstve dát.
4. Zlučovanie dát medzi servermi je veľmi pohodlné.
Nevýhody použitia GUID ako primárneho kľúča:
1. Úložný priestor je veľký (16 bajtov), takže zaberie väčšiu veľkosť disku.
2. Je ťažké si to pamätať. Výkon spojovacej operácie je nižší ako výkon int.
3. Neexistuje zabudovaná funkcia na získanie najnovšieho vygenerovaného primárneho GUID kľúča.
4. GUID ako primárny kľúč bude pridaný k ostatným indexom v tabuľke, čo zníži výkon.
Súhrn:
Vyššie uvedené uvádza výhody a nevýhody dátových typov GUID a INT ako primárnych kľúčov. Myslím, že pri veľkých objemoch dát sa odporúča používať guid ako primárny kľúč. KeďžePoužitie int ti dá najlepší výkon。
Komentár: PoužitieVýkon usporiadaných GUID sa výrazne zlepšuje。
Pôvodný text dva:Prihlásenie na hypertextový odkaz je viditeľné.
Identita je celý typ typu, desatinná bez desatinnej definície, bigint je prijateľný
GUID je pevný binárny(16), ktorý má 16 bajtov
Identita sa zvyšuje (alebo odčítava) a GUID je náhodný, takže pri vkladaní dátPrvý nevytvorí žiadne fragmenty, zatiaľ čo druhý áno, a keďže druhý je v nesprávnom poradí, je potrebné poradie upraviť pri vložení, takže prvý je vo všeobecnosti lepší z hľadiska výkonu.
Veľké množstvo informácií je zvyčajne rozdelené do tabuliek, takže identita je v mnohých prípadoch ešte vhodnejšia
Čo sa týka významu primárneho kľúča, závisí to od toho, ako ho vnímate pri navrhovaní, pre samotné spracovanie dát primárny kľúč nemusí byť významný, a ak vyžadujete, aby primárny kľúč obsahoval obchodný význam, potom primárny kľúč identity samozrejme nemá význam, ale vo všeobecnosti je lepšie oddeliť obchodný význam od spracovania dát, biznis sa neustále mení, ak chcete priniesť význam hlavnému kľúču dizajnu tabuľky, potom sa biznis mení, budete musieť viac upraviť štruktúru tabuľky.
Pôvodný text tri:Prihlásenie na hypertextový odkaz je viditeľné.
1. V systémoch, ktoré často potrebujú migráciu dát, sa odporúča používať Guid. A pridávanie ne-klastrovaných indexov k zodpovedajúcim cudzím kľúčovým poliam, teda poliam používaným na dotazy na spojovanie, je veľkým prínosom na zlepšenie výkonu. Pole podmienky where možno tiež pridať podľa potreby pre neklastrované indexy.
2. Pri použití typu Guid ako primárneho kľúča by mal byť dátový typ uniqueidentifier a nezabudnite si ho pamätaťZrušte primárny kľúč "Agregované indexy”
3. Pre systémy, ktoré nie je potrebné migrovať, alebo malé systémy, je stále veľmi pohodlné použiť int ako primárny kľúč a stále dochádza k určitému zlepšeniu efektivity.
(Koniec)
|