|
|
Objavljeno na 20. 09. 2019 09:31:08
|
|
|

Koncept indeksiranja
Namen vzpostavitve indeksa je izboljšati delovanje podatkovnega sistema, pospešiti hitrost poizvedb podatkov in zmanjšati odzivni čas sistema. Kaj je kazalo: Kazalo v podatkovni bazi je podobno kazalu vsebine knjige, kjer lahko hitro najdete želene informacije, ne da bi prebrali celotno knjigo. V podatkovni bazi program uporablja indekse za hitro poizvedovanje podatkov v tabeli, ne da bi moral skenirati celotno tabelo. Kazalo v knjigi je seznam besed in številk strani, na katerih se nahajajo, indeks v podatkovni bazi pa je seznam vrednosti v tabeli in kjer je vsaka vrednost shranjena. Prednosti in slabosti indeksiranja: Večina stroškov izvajanja poizvedb je I/O, eden glavnih ciljev uporabe indeksov za izboljšanje zmogljivosti pa je izogibanje popolnemu pregledovanju tabel, saj mora popolno skeniranje tabel prebrati vsako podatkovno stran tabele z diska, in če je indeks, ki kaže na podatkovno vrednost, mora poizvedba le nekajkrat prebrati na disk. Zato lahko razumna uporaba indeksov pospeši iskanje podatkov. Vendar indeksi ne izboljšajo vedno zmogljivosti sistema, indeksirane tabele morajo zavzeti več prostora v podatkovni bazi, isti ukaz za spreminjanje in brisanje podatkov pa bo trajal dlje za izvajanje in vzdrževanje indeksa. Zato moramo indeks uporabljati razumno in ga pravočasno posodobiti, da odstranimo suboptimalni indeks.
Razvrščanje indeksov
Kazalo je podobno kazalu pred kitajskim slovarjem in lahko hitro najdete besedo, ki jo želite najti, glede na pinyin ali veliko začetnico. EDINSTVENO: Vrednost indeksa vsake vrstice je edinstvena (ustvari se edinstvena omejitev, sistem pa samodejno ustvari edinstven indeks). Indeks primarnega ključa: Stolpec primarnega ključa, ki je določen ob ustvarjanju tabele, samodejno ustvari indeks primarnega ključa in ima edinstvene značilnosti. GRUČE: Združeni indeksi so enakovredni uporabi iskalnega sistema pinyin v slovarju, ker gručen indeks shranjuje zapise, ki so fizično zvezni, torej mora biti pinyin a nasleden z b. NEGRUČENI: NEGRUČENI indeksi so enakovredni uporabi slovarskih radikalov za iskanje, negručenjski indeksi so logično zvezni, fizično shranjevanje pa ni povezano. Združeni indeks lahko vsebuje le eno tabelo v tabeli, medtem ko lahko negručen indeks vsebuje več kot eno tabelo v tabeli.
Katera polja je treba indeksirati
1. Primarni in tuji ključi tabele morajo imeti indeks 2. Tabele z več kot 300 podatki naj imajo indeks 3. Tabele, ki so pogosto povezane z drugimi tabelami, je treba indeksirati na povezanih poljih 4. Polja, ki se pogosto pojavljajo v klavzuli Where, zlasti tista v velikih tabelah, je treba indeksirati 5. Polja, ki so pogosto razvrščena ali združena (npr. izvajajo operacije GROUP BY ali ORDER BY), je treba indeksirati 6. Indeks naj temelji na zelo selektivnih poljih 7. Indeks naj bo zgrajen na majhnih poljih, za velika besedilna polja ali celo ultra-dolga polja, ne gradi indeksov in naj uporablja cela števila kot ključne vrednosti, saj imajo cela števila najhitrejši dostop 8. Vzpostavitev sestavljenih indeksov je treba skrbno analizirati; Poskusite raje uporabiti indekse z enim poljem 9. Tabele, ki pogosto obdelujejo podatke, ne bi smele preveč indeksirati 10. Izbrisati neuporabne indekse, da se izognete negativnemu vplivu na načrt izvedbe
Slabost prevelikega števila indeksov
1. Prostor za shranjevanje se bo povečal in vsak indeks bo moral biti shranjen v prostoru 2. Če je veliko negručenih indeksov, se po spremembi gručenega indeksa vsi negruči indeksi temu primerno spremenijo 3. Preveč indeksov bo povzročilo povečanje števila kombinacij, ki jih je treba oceniti v optimizacijskem procesu optimizacije, kar povečuje čas poizvedbe 4. Vsak indeks vsebuje statistične podatke, in več kot je indeksov, več statističnih podatkov, kar poveča čas poizvedbe 5. Posodobitev – ko se podatek spremeni in je spremenjeno veliko stolpcev, lahko povzroči spremembo več indeksov, kar povzroči upočasnitev posodobitve, brisanja in vstavljanja
|
Prejšnji:Močna spremljava najstnikov v videospotuNaslednji:C# dobi trenutno sistemsko črko diska, sistemsko imenik, namizje itd
|