Prasības: Nesenās intervijas laikā man jautāja, kāda ir atšķirība starp SQL Server datu bāzes int un guid kā galveno atslēgu.Abiem ir plusi un mīnusi, lūdzu, nosveriet tos atbilstoši jūsu faktiskajiem biznesa scenārijiem。
Oriģinālais teksts 1:Hipersaites pieteikšanās ir redzama.
INT kā primārās atslēgas izmantošanas priekšrocības:
1. Tas prasa nelielu datu glabāšanas vietu, tikai 4 baitus.
2. INT izmantošanas veiktspēja ievietošanas un atjaunināšanas operācijām ir labāka nekā GUID, tāpēc int izmantošana uzlabos lietojumprogrammas veiktspēju.
3. Indeksa un pievienošanās operācijas, int ir vislabākais sniegums.
4. Viegli atcerēties.
5. Atbalsts, lai iegūtu jaunāko vērtību, izmantojot funkciju, piemēram: Scope_Indentity().
Trūkumi, izmantojot INT kā primāro atslēgu
1. Ja bieži tiek apvienotas tabulas, var būt primāro atslēgu dublēšanās.
2. Pastāv ierobežojumi attiecībā uz INT datu izmantošanas apjomu. Ja ir liels datu apjoms, tas var pārsniegt INT vērtību diapazonu.
3. Ir grūti apstrādāt izplatītās saglabāto datu tabulas.
GUID kā primārās atslēgas izmantošanas priekšrocības:
1. Tas ir unikāls.
2. Dublēšanai ir maz iespēju.
3. Tas ir piemērots ievietošanas un atjaunināšanas operācijām lielā datu apjomā.
4. Starpserveru datu apvienošana ir ļoti ērta.
GUID kā primārās atslēgas izmantošanas trūkumi:
1. Krātuves vieta ir liela (16 baiti), tāpēc tā aizņems lielāku diska izmēru.
2. To ir grūti atcerēties. Savienojuma operācijas veiktspēja ir zemāka nekā int.
3. Nav iebūvētas funkcijas, lai iegūtu jaunāko ģenerēto GUID primāro atslēgu.
4. GUID kā primārā atslēga tiks pievienota citiem tabulas indeksiem, tādējādi tas samazinās veiktspēju.
Kopsavilkuma:
Iepriekš ir uzskaitītas GUID un INT datu tipu kā primāro atslēgu priekšrocības un trūkumi. Es domāju, ka lieliem datu apjomiem ieteicams izmantot guid kā primāro atslēgu. BetIzmantojot int, jūs saņemsiet vislabāko veiktspēju。
Komentārs: IzmantojietPasūtītā GUID veiktspēja ievērojami uzlabojas。
Oriģinālais teksts divi:Hipersaites pieteikšanās ir redzama.
identitāte ir vesels tipa tips, decimāldaļa bez decimāldaļas definīcijas, bigint ir pieņemams
GUID ir fiksēts binārs(16), kas ir 16 baiti
identitāte tiek palielināta (vai atņemta), un GUID ir nejauša, tātad, kad tiek ievietoti dati,Pirmais neradīs nekādus fragmentus, bet otrais - un, tā kā otrais nav kārtībā, secība ir jāpielāgo, kad tas ir ievietots, tāpēc pirmais parasti ir labāks par otro veiktspējas ziņā.
Liels informācijas apjoms parasti ir sadalīts tabulās, tāpēc identitāte daudzos gadījumos joprojām ir piemērotāka
Kas attiecas uz primārās atslēgas nozīmi, tas ir atkarīgs no tā, kā jūs to uzskatāt, projektējot, pašai datu apstrādei primārajai atslēgai nav jābūt jēgpilnai, un, ja jums ir nepieciešams, lai primārā atslēga saturētu biznesa nozīmi, tad identitātes primārā atslēga, protams, ir bezjēdzīga, bet vispārīgi runājot, labāk ir atdalīt biznesa nozīmi un datu apstrādi, bizness vienmēr mainās, ja vēlaties piešķirt nozīmi tabulas dizaina galvenajai atslēgai, tad bizness mainās, jums būs vairāk jāpielāgo tabulas struktūra.
Oriģinālais teksts trīs:Hipersaites pieteikšanās ir redzama.
1. Sistēmās, kurās bieži ir jāveic datu migrācija, ieteicams izmantot Guid. Un nesagrupētu indeksu pievienošana atbilstošajiem ārējās atslēgas laukiem, tas ir, laukiem, kas tiek izmantoti savienojuma vaicājumiem, ir ļoti noderīga, lai uzlabotu veiktspēju. Nosacījuma where lauku var pievienot arī negrupētiem indeksiem.
2. Izmantojot Guid tipu kā primāro atslēgu, datu tipam jābūt uniqueidentifier un noteikti atcerieties toAtcelt primārās atslēgas "Apkopotie indeksi”
3. Sistēmām, kuras nav jāmigrē, vai mazām sistēmām joprojām ir ļoti ērti izmantot int kā primāro atslēgu, un joprojām ir zināms efektivitātes uzlabojums.
(Beigas)
|