Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 3812|Válasz: 2

[Forrás] [Turn] (MSSQL) SQL Server adatbázis int és guid elsődleges kulcs összehasonlításához

[Linket másol]
Közzétéve 2023. 06. 06. 22:17:40 | | |
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 1A 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ásodikA 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 harmadikA 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)




Előző:ASP.NET Core (20) Nyílt átirányítási támadások megelőzése
Következő:.NET Core program többnyelvű olvasó-írási erőforrás (.resx) fájlok
 Háziúr| Közzétéve 2023. 06. 06. 22:42:46 |
SequentialGuidValueGenerator sorozatos Guid értékeket generál, amelyeket optimalizáltak Microsoft SQL Server klaszter kulcsokhoz vagy indexekhez, így jobb teljesítményt nyújt, mint a véletlenszerű értékek. Ez az alapértelmezett generátor készlet, amely SQL Server Guid oszlopokat generál, amikor hozzáadják őket.

A hiperlink bejelentkezés látható.


Az Entity Framework Core-ban lévő szekvenciális GUID-ek nem feltétlenül lehetnek szekvenciális

A hiperlink bejelentkezés látható.
 Háziúr| Közzétéve 2024. 01. 27. 11:07:29 |
[MSSQL] Az SQL SERVER elsődleges kulcsaggregációs indextesztként GUID-eket és sorrend nélküli GUID-eket rendelt
https://www.itsvse.com/thread-10607-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com