Indeksēšanas jēdziens
Indeksa izveides mērķis ir uzlabot datu bāzes sistēmas veiktspēju, paātrināt datu vaicājuma ātrumu un samazināt sistēmas reakcijas laiku. Kas ir indekss: datu bāzes indekss ir līdzīgs grāmatas satura rādītājam, kurā var ātri atrast vajadzīgo informāciju, neizlasot visu grāmatu. Datu bāzē datu bāzes programma izmanto indeksus, lai ātri vaicātu datus tabulā, neskenējot visu tabulu. Grāmatas satura rādītājs ir vārdu saraksts un lappušu numuri, kuros tie atrodas, un datu bāzes indekss ir tabulas vērtību saraksts un katra vērtība tiek saglabāta. Indeksēšanas plusi un mīnusi: Lielākā daļa vaicājumu izpildes pieskaitāmo izdevumu ir I/O, un viens no galvenajiem mērķiem, izmantojot indeksus, lai uzlabotu veiktspēju, ir izvairīties no pilnas tabulas skenēšanas, jo pilnas tabulas skenēšanai ir jānolasa katra tabulas datu lapa no diska, un, ja ir indekss, kas norāda uz datu vērtību, vaicājumam ir jānolasa tikai dažas reizes diskā. Tāpēc saprātīga indeksu izmantošana var paātrināt datu vaicāšanu. Tomēr indeksi ne vienmēr uzlabo sistēmas veiktspēju, indeksētajām tabulām ir jāaizņem vairāk vietas datu bāzē, un tā pati komanda, lai modificētu un dzēstu datus, aizņems ilgāku laiku, lai izpildītu un uzturētu indeksu. Tāpēc mums ir jāizmanto indekss saprātīgi un savlaicīgi jāatjaunina, lai noņemtu neoptimālo indeksu.
Indeksu klasifikācija
Indekss ir līdzīgs satura rādītājam ķīniešu vārdnīcas priekšā, un jūs varat ātri atrast vārdu, kuru vēlaties atrast pēc pinyin vai galvaspilsētas. UNIQUE: katras rindas indeksa vērtība ir unikāla (tiek izveidots unikāls ierobežojums, un sistēma automātiski izveidos unikālu indeksu). Primārās atslēgas indekss: primārās atslēgas kolonna, kas norādīta, izveidojot tabulu, automātiski izveido primārās atslēgas indeksu, un tai ir unikālas īpašības. CLUSTERED: sagrupētie indeksi ir līdzvērtīgi vārdnīcas pinyin uzmeklēšanas izmantošanai, jo klasterizētais indekss glabā ierakstus, kas ir fiziski nepārtraukti, tas ir, pinyin a ir jāseko b. NONCLUSTERED: NONCLUSTERED indeksi ir līdzvērtīgi vārdnīcas radikāļu izmantošanai meklēšanai, neklasterizētie indeksi ir loģiski nepārtraukti, un fiziskā krātuve nav blakus. Sagrupētam indeksam tabulā var būt tikai viena tabula, savukārt negrupētam indeksam tabulā var būt vairākas tabulas.
Kuri lauki ir jāindeksē
1. Tabulas primārajām un ārējām atslēgām jābūt indeksam 2. Tabulām, kurās ir vairāk nekā 300 datu, jābūt indeksam 3. Tabulas, kas bieži ir savienotas ar citām tabulām, jāindeksē savienotajos laukos 4. Lauki, kas bieži parādās klauzulā Where, īpaši lielās tabulās, ir jāindeksē 5. Lauki, kas bieži tiek kārtoti vai grupēti (t.i., veic operācijas GROUP BY vai ORDER BY), ir jāindeksē 6. Indekss jāveido, pamatojoties uz ļoti selektīviem laukiem 7. Indekss jāveido uz maziem laukiem, lieliem teksta laukiem vai pat īpaši gariem laukiem, neveidojiet indeksus un izmantojiet veselus skaitļus pēc iespējas galvenās vērtības, jo veseliem skaitļiem ir visātrākais piekļuves ātrums 8. Rūpīgi jāanalizē salikto indeksu izveide; Mēģiniet apsvērt iespēju izmantot viena lauka indeksus 9. Tabulas, kas bieži veic datu manipulācijas, nedrīkst indeksēt pārāk daudz 10. Izdzēsiet bezjēdzīgus indeksus, lai izvairītos no negatīvas ietekmes uz izpildes plānu
Pārāk daudz indeksu trūkums
1. Krātuves vieta kļūs lielāka, un katrs indekss būs jāglabā kosmosā 2. Ja ir daudz nesagrupētu indeksu, tiklīdz sagrupētais indekss mainīsies, tad visi nesagrupētie indeksi attiecīgi mainīsies 3. Pārāk daudz indeksu palielinās to kombināciju skaitu, kas jānovērtē optimizētāja optimizācijas procesā, palielinot vaicājuma laiku 4. Katram indeksam ir statistiskā informācija, un jo vairāk indeksu, jo vairāk statistikas informācijas, kas palielina vaicājuma laiku 5. Atjauniniet pieskaitāmās izmaksas, kad dati mainās un ir mainītas daudzas kolonnas, tas var izraisīt vairāku indeksu izmaiņas, kā rezultātā atjaunināšana, dzēšana un ievietošana palēninās
|