Követelmények: Egy nemrégiben készült interjún megkérdezték, mi a különbség az SQL Server adatbázis int és a guid között, mint a fő kulcs.Mindkettőnek vannak előnyei és hátrányai, kérlek, mérlegeld őket a tényleges üzleti helyzeteid szerint。
Eredeti szöveg 1:A hiperlink bejelentkezés látható.
Az INT elsődleges kulcsként való használatának előnyei:
1. Kis adattároló kapacitásra van szükség, csak 4 bájt.
2. Az INT használata a beillesztéshez és frissítéshez jobb teljesítmény, mint a GUID-é, így az int használata javítja az alkalmazás teljesítményét.
3. Index és Join műveletek, az int a legjobb teljesítményt nyújtja.
4. Könnyű emlékezni.
5. Támogatás a legfrissebb érték megszerzéséhez egy függvényen keresztül, például: Scope_Indentity().
Az INT elsődleges kulcsként használatának hátrányai
1. Ha gyakori a táblázatok összevonása, előfordulhat, hogy az elsődleges kulcsok duplikálódnak.
2. Az INT adatok használatának mértékére vonatkozó korlátozások vannak. Ha nagy mennyiségű adat van, az meghaladhatja az INT értéktartományt.
3. Nehéz feldolgozni az elosztott tárolt adattáblákat.
A GUID elsődleges kulcsként való használatának előnyei:
1. Ez egyedi.
2. Kevés lehetőség van a duplikálásra.
3. Alkalmas nagy mennyiségű adat behelyezésére és frissítésére.
4. A szerverek közötti adatösszevonás nagyon kényelmes.
Hátrányai a GUID elsődleges kulcsként használatának:
1. A tárhely nagy (16 bájt), így több lemezméretet foglal el.
2. Nehéz emlékezni. A csatlakozási művelet teljesítménye alacsonyabb, mint az intéé.
3. Nincs beépített funkció a legfrissebb generált GUID elsődleges kulcs megszerzéséhez.
4. A GUID, mint elsődleges kulcs, hozzáadódik a táblázat többi indexéhez, így csökkenti a teljesítményt.
Összefoglalás:
A fentiek felsorolják a GUID és INT adattípusok elsődleges kulcsként való előnyeit és hátrányait. Szerintem nagy adatmennyiségeknél ajánlott a guid-ot elsődleges kulcsként. mivelAz int használata adja a legjobb teljesítményt。
Megjegyzés: HasználatA Ordered GUID teljesítménye jelentősen javul。
Eredeti szöveg második:A hiperlink bejelentkezés látható.
Az identitás egy teljes típustípus, tizedes definíció nélkül, a bigint elfogadható
A guid fix binary(16), ami 16 bájt
Az identitás növeli (vagy levonul), és a guid véletlenszerű, így az adat beillesztésekorAz előbbi nem hoz létre töredékeket, míg az utóbbi igen, és mivel az utóbbi nem sorrendben van, a sorrendet be kell igazítani, így az előbbi általában jobb teljesítmény szempontjából, mint az utóbbi.
Nagy mennyiségű információt általában táblázatokra osztanak, így az identitás sok esetben még mindig alkalmasabb
Ami az elsődleges kulcs jelentését illeti, attól függ, hogyan gondolod a tervezés során; az adatfeldolgozás esetében az elsődleges kulcsnak nem kell értelmesnek lennie, és ha az elsődleges kulcsnak üzleti jelentést kell tartalmaznia, akkor az identitás elsődleges kulcsa természetesen értelmetlen, de általánosságban jobb elválasztani az üzleti jelentést és az adatfeldolgozást, az üzlet folyamatosan változik, ha a jelentést a tábla fő kulcsához akarod vinni, akkor az üzlet változik, és jobban kell módosítanod a táblaszerkezetet.
Eredeti szöveg harmadik:A hiperlink bejelentkezés látható.
1. Olyan rendszerekben, amelyeknek gyakran szükség van adatmigrációra, ajánlott a Guid használata. És a nem klaszterezett indexek hozzáadása a megfelelő idegen kulcsmezőkhöz, azaz a csatlakozási lekérdezésekhez használt mezőkhöz, nagy előnyt jelent a teljesítmény javítása érdekében. A where feltétel mezője is hozzáadható a nem klaszterezett indexekhez.
2. Amikor a Guid típust használjuk elsődleges kulcsként, az adattípusnak uniqueidentifier kell legyen, és mindenképp jegyezd meg aztTöröld a fő kulcsokat "Aggregált indexek”
3. Olyan rendszereknél, amelyeket nem kell migrálni, vagy kisebb rendszereknél, továbbra is nagyon kényelmes az int elsődleges kulcsként használni, és a hatékonyságban is van némi javulás.
(Vége)
|