|
|
Paskelbta 2019-09-20 09:31:08
|
|
|

Indeksavimo samprata
Indekso sudarymo tikslas yra pagerinti duomenų bazės sistemos našumą, pagreitinti duomenų užklausų greitį ir sutrumpinti sistemos atsakymo laiką. Kas yra indeksas: Duomenų bazės rodyklė yra panaši į knygos turinį, kuriame galite greitai rasti norimą informaciją neperskaitę visos knygos. Duomenų bazėje duomenų bazės programa naudoja indeksus, kad greitai užklaustų lentelės duomenis, nenuskaitydama visos lentelės. Knygos turinys yra žodžių sąrašas ir puslapių numeriai, kuriuose jie yra, o duomenų bazės rodyklė yra lentelės reikšmių sąrašas ir kiekviena reikšmė saugoma. Indeksavimo privalumai ir trūkumai: Didžioji dalis užklausos vykdymo išlaidų yra I/O, o vienas iš pagrindinių indeksų naudojimo našumui pagerinti tikslų yra išvengti visos lentelės nuskaitymo, nes visos lentelės nuskaitymas turi nuskaityti kiekvieną lentelės duomenų puslapį iš disko, o jei yra indeksas, nurodantis duomenų reikšmę, užklausą reikia perskaityti tik kelis kartus į diską. Todėl protingas indeksų naudojimas gali pagreitinti duomenų užklausą. Tačiau indeksai ne visada pagerina sistemos našumą, indeksuotos lentelės turi užimti daugiau vietos duomenų bazėje, o ta pati komanda modifikuoti ir ištrinti duomenis užtruks ilgiau. Todėl turime protingai naudoti indeksą ir laiku jį atnaujinti, kad pašalintume neoptimalų indeksą.
Indeksų klasifikacija
Rodyklė yra panaši į turinį priešais kinų kalbos žodyną, ir jūs galite greitai rasti žodį, kurį norite rasti pagal pinyin arba didžiąją raidę. UNIKALUS: kiekvienos eilutės indekso reikšmė yra unikali (sukuriamas unikalus apribojimas ir sistema automatiškai sukurs unikalų indeksą). Pirminio rakto indeksas: pirminio rakto stulpelis, nurodytas kuriant lentelę, automatiškai sukuria pirminio rakto indeksą ir turi unikalių savybių. CLUSTERED: sugrupuoti indeksai prilygsta žodyno pinyin peržvalgos naudojimui, nes sugrupuotame indekse saugomi įrašai, kurie yra fiziškai nepertraukiami, t. y. pinyin a turi būti po b. NONCLUSTERED: NONCLUSTERED indeksai yra lygiaverčiai žodyno radikalų naudojimui paieškai, negrupiniai indeksai yra logiškai tęstiniai, o fizinė saugykla nėra gretima. Sugrupuotame indekse lentelėje gali būti tik viena lentelė, o nesugrupuotame indekse gali būti daugiau nei viena lentelė.
Kuriuos laukus reikia indeksuoti
1. Pirminiai ir išoriniai lentelės raktai turi turėti indeksą 2. Lentelėse, kuriose yra daugiau nei 300 duomenų, turėtų būti indeksas 3. Lentelės, kurios dažnai sujungiamos su kitomis lentelėmis, turėtų būti indeksuojamos prijungtuose laukuose 4. Laukai, kurie dažnai rodomi sąlygoje Where, ypač didelėse lentelėse, turėtų būti indeksuojami 5. Dažnai rūšiuojami arba grupuojami laukai (t. y. atlieka operacijas GROUP BY arba ORDER BY) turi būti indeksuojami 6. Indeksas turėtų būti sudarytas remiantis labai selektyviais laukais 7. Indeksas turėtų būti sudarytas mažuose laukuose, dideliems teksto laukams ar net itin ilgiems laukams, nekurkite indeksų ir naudokite sveikuosius skaičius kaip įmanoma pagrindines reikšmes, nes sveikieji skaičiai turi didžiausią prieigos greitį 8. Reikia atidžiai išanalizuoti sudėtinių indeksų nustatymą; Pabandykite naudoti vieno lauko indeksus 9. Lentelės, kuriose dažnai manipuliuojama duomenimis, neturėtų būti indeksuojamos per daug 10. Ištrinkite nenaudingus indeksus, kad išvengtumėte neigiamo poveikio vykdymo planui
Per daug indeksų trūkumas
1. Saugyklos vieta taps didesnė, o kiekvieną indeksą reikės saugoti erdvėje 2. Jei yra daug nesugrupuotų indeksų, pasikeitus sugrupuotam indeksui, atitinkamai pasikeis visi nesugrupuoti indeksai 3. Dėl per didelio indeksų skaičiaus padidės derinių, kuriuos reikia įvertinti optimizavimo procese, skaičius, todėl padidės užklausos laikas 4. Kiekviename indekse yra statistinė informacija, o kuo daugiau indeksų, tuo daugiau statistinės informacijos, o tai padidina užklausos laiką 5. Atnaujinkite pridėtines išlaidas, kai pasikeičia duomenys ir pasikeičia daug stulpelių, gali pasikeisti keli indeksai, todėl atnaujinimas, ištrynimas ir įterpimas gali sulėtėti
|
Ankstesnis:Paauglių stiprus akompanimentas MV videoKitą:C# gauna dabartinę sistemos disko raidę, sistemos katalogą, darbalaukį ir kt
|