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

Nézet: 17091|Válasz: 3

[Forrás] Használd a guid-ot elsődleges kulcsként, az int-t pedig a fő kulcs teljesítményösszehasonlításként

[Linket másol]
Közzétéve 2019. 10. 09. 16:48:35 | | | |
Az adatbázis tervezése során gyakran használjuk a guid vagy int fő kulcsot, és a tanult tudás alapján mindig is úgy éreztük, hogy az int hatékonyabb fő kulcsként, de ez lehetetlen gondos tesztelés nélkül

Magyarázd el az okát. Ma az adatbázis optimalizálása során találkoztam ezzel a problémával, ezért teszteltem.

Tesztkörnyezet:

Asztali PC Pentiun(R) 4 CPU 3.06GHz
Win XP profi
1,5G DDR RAM
SQL Server 2005 Personal  


Tesztelési folyamat:

Először hozz létre egy tesztadatbázist, tesztelj

A teszteredmények a következők:



Ahogy fentebb említettük, az int elsődleges kulcsként való használatának hatékonysága javul, mint a guid fő kulcsként való használata, különösen, ha kapcsolati lekérdezés és rekordok törlése van.

Ráadásul a GUID fő kulcsával ellátott adatlekérdezésnél ma ismételten előfordult a lekérdezés időkérése, mivel több al-lekérdezési eredmény beágyazódott. Ezért támogatom, hogy az int fő kulcsként használjuk, és nem értek egyet a guid fő kulcsként.
A fent említett nézetek személyes véleményeket képviselnek, és mindenki szívesen látott kifejezni véleményét, valamint elmagyarázni a vezető és int előnyeit és hátrányait, mint a fő kulcsot.

Utódvizsgálatok:


A testvérek emlékeztetésére ma két altáblázathoz hozzáadtak egy nem klaszterezett indexet:

NEM KLASZTEREZETT INDEX Index_Detail_Guid létrehozása Test_Guid_Detail(Guid)-on
NEM KLASZTEREZETT INDEX Index_Detail_id LÉTREHOZÁSA A Test_Int_Detail(id)-EN
Ezután belső kapcsolati lekérdezést végeztem, és azt találtam, ahogy @Xu Shaoxia mondta, a hatékonyság valóban nem elég nyilvánvaló ahhoz, hogy 50%-nál többet jelezzen, és gyakorlatilag csak körülbelül 23%-os javulást jelezhet, ami még mindig elfogadható.

Ezért ajánlott

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 uniqueidentifiernek kell lennie, és ne felejtsd el törölni az elsődleges kulcs "aggregált indexét"

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.





Előző:A182 Wu Xiaobo "2019 Új Középosztálybeli Fehér Könyv"
Következő:A Fan Deng Olvasóklub legújabb forrásainak gyűjteménye
 Háziúr| Közzétéve 2021. 02. 08. 11:03:12 |
teszt
 Háziúr| Közzétéve 2021. 02. 08. 11:03:31 |

Közzétéve 2025. 03. 20. 16:13:51 |
Az int elsődleges kulcs migráció nem jelent nagy problémát, amíg az int elsődleges kulcs ideiglenesen törlésre kerül a migráció során, majd az önnövelést a migráció után megnyitja
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