Indexarea îmbunătățește performanța bazei de date prin reducerea la minimum a numărului de vizite pe disc necesare pentru a îndeplini o interogare. Este o tehnică de structură a datelor utilizată pentru a localiza și accesa rapid datele din bazele de date. Mai multe câmpuri ale bazei de date sunt folosite pentru a genera indecși. Cheia principală sau cheia candidată a tabelului este duplicată în prima coloană, care este cheia Căutare. Pentru a accelera recuperarea datelor, valorile sunt, de asemenea, păstrate în ordine sortată. Trebuie subliniat faptul că sortarea datelor nu este necesară. A doua coloană este Referința de date sau Pointerul care conține un set de pointeri care dețin adresa blocului de disc unde poate fi găsită respectiva valoare cheie.
convențiile de denumire java
Structura indexului în baza de date
Atributele indexării
- Tipuri de acces: Aceasta se referă la tipul de acces, cum ar fi căutarea bazată pe valoare, accesul la intervale etc.
- Timpul de acces: Se referă la timpul necesar pentru a găsi un anumit element de date sau un set de elemente.
- Timp de inserare: Se referă la timpul necesar pentru a găsi spațiul adecvat și a introduce date noi.
- Timp de ștergere: Timpul necesar pentru a găsi un articol și a-l șterge, precum și pentru a actualiza structura indexului.
- Spațiu deasupra capului: Se referă la spațiul suplimentar cerut de index.
Structura indexului în baza de date
În general, există două tipuri de mecanisme de organizare a fișierelor care sunt urmate de metodele de indexare pentru stocarea datelor:
Organizarea fișierelor secvențiale sau fișierul index ordonat
În aceasta, indicii se bazează pe o ordonare sortată a valorilor. Acestea sunt în general rapide și un tip mai tradițional de mecanism de stocare. Aceste organizații de fișiere ordonate sau secvențiale pot stoca datele într-un format dens sau rar.
- Index dens
- Pentru fiecare valoare a cheii de căutare din fișierul de date, există o înregistrare index.
- Această înregistrare conține cheia de căutare și, de asemenea, o referință la prima înregistrare de date cu acea valoare a cheii de căutare.
Index dens
- Index rar
- Înregistrarea indexului apare doar pentru câteva elemente din fișierul de date. Fiecare element indică un bloc, așa cum se arată.
- Pentru a localiza o înregistrare, găsim înregistrarea index cu cea mai mare valoare a cheii de căutare mai mică sau egală cu valoarea cheii de căutare pe care o căutăm.
- Începem de la acea înregistrare indicată de înregistrarea index și procedăm împreună cu pointerii din fișier (adică secvenţial) până când găsim înregistrarea dorită.
- Numărul de accesări necesare=log₂(n)+1, (aici n=numărul de blocuri achiziționate de fișierul index)
Index rar
instrucțiunea javascript if
Organizarea fișierelor hash
Indicii se bazează pe valorile distribuite uniform într-o gamă de compartimente. Bucket-urile cărora le este atribuită o valoare sunt determinate de o funcție numită funcție hash. Există în principal trei metode de indexare:
- Indexarea în clustere : Când în același fișier sunt stocate mai mult de două înregistrări, acest tip de stocare este cunoscut sub numele de indexare cluster. Folosind indexarea clusterului, putem reduce costul căutării, motiv pentru care mai multe înregistrări legate de același lucru sunt stocate într-un singur loc și oferă, de asemenea, unirea frecventă a mai mult de două tabele (înregistrări).
Indicele de grupare este definit pe un fișier de date ordonat. Fișierul de date este ordonat pe un câmp fără cheie. În unele cazuri, indexul este creat pe coloane non-cheie primară, care pot să nu fie unice pentru fiecare înregistrare. În astfel de cazuri, pentru a identifica mai rapid înregistrările, vom grupa două sau mai multe coloane împreună pentru a obține valorile unice și a crea un index din ele. Această metodă este cunoscută sub numele de indice de clustering. În esență, înregistrările cu proprietăți similare sunt grupate împreună și sunt formați indici pentru aceste grupări.
Studenții care studiază în fiecare semestru, de exemplu, sunt grupați împreună. Sunt clasificați studenții din primul semestru, studenții din al doilea semestru, studenții din semestrul trei și așa mai departe.
Indexarea în clustere
- Indexare primară: Acesta este un tip de indexare în cluster în care datele sunt sortate în funcție de cheia de căutare și cheia primară a tabelului bazei de date este utilizată pentru a crea indexul. Este un format implicit de indexare unde induce organizarea secvențială a fișierelor . Deoarece cheile primare sunt unice și sunt stocate într-o manieră sortată, performanța operației de căutare este destul de eficientă.
- Indexare non-cluster sau secundară : Un index non-cluster ne spune doar unde se află datele, adică ne oferă o listă de pointeri virtuali sau referințe la locația în care datele sunt de fapt stocate. Datele nu sunt stocate fizic în ordinea indexului. În schimb, datele sunt prezente în nodurile frunzelor. Pentru ex. pagina de conținut a unei cărți. Fiecare intrare ne oferă numărul paginii sau locația informațiilor stocate. Datele reale de aici (informațiile de pe fiecare pagină a cărții) nu sunt organizate, dar avem o referință ordonată (pagina de conținut) la locul în care se află de fapt punctele de date. Putem avea doar o ordonare densă în indexul non-cluster, deoarece ordonarea rară nu este posibilă, deoarece datele nu sunt organizate fizic în mod corespunzător.
Este nevoie de mai mult timp în comparație cu indexul grupat, deoarece se face o cantitate de muncă suplimentară pentru a extrage datele urmărind în continuare indicatorul. În cazul unui index grupat, datele sunt prezente direct în fața indexului.

Indexare non-clustered
- Indexare pe mai multe niveluri: Odată cu creșterea dimensiunii bazei de date, indicii cresc și ei. Deoarece indexul este stocat în memoria principală, un index cu un singur nivel poate deveni o dimensiune prea mare pentru a fi stocat cu mai multe accesări la disc. Indexarea pe mai multe niveluri segrega blocul principal în diferite blocuri mai mici, astfel încât acestea să poată fi stocate într-un singur bloc. Blocurile exterioare sunt împărțite în blocuri interioare care, la rândul lor, sunt îndreptate către blocurile de date. Acesta poate fi stocat cu ușurință în memoria principală, cu mai puține cheltuieli generale.
Indexare pe mai multe niveluri
Avantajele indexării
- Performanță îmbunătățită a interogărilor: Indexarea permite o recuperare mai rapidă a datelor din baza de date. Baza de date poate descoperi rapid rânduri care se potrivesc cu o anumită valoare sau cu o colecție de valori prin generarea unui index pe o coloană, minimizând timpul necesar pentru a efectua o interogare.
- Acces eficient la date: Indexarea poate îmbunătăți eficiența accesului la date prin scăderea cantității de I/O pe disc necesare pentru a prelua datele. Baza de date poate menține paginile de date pentru coloanele frecvent vizitate în memorie prin generarea unui index pe acele coloane, scăzând cerința de a citi de pe disc.
- Sortare optimizată a datelor: De asemenea, indexarea poate îmbunătăți performanța operațiunilor de sortare. Prin crearea unui index pe coloanele folosite pentru sortare, baza de date poate evita sortarea întregului tabel și în schimb sortează doar rândurile relevante.
- Performanță constantă a datelor: Indexarea poate ajuta la asigurarea faptului că baza de date funcționează constant, chiar dacă cantitatea de date din baza de date crește. Fără indexare, rularea interogărilor poate dura mai mult pe măsură ce numărul de rânduri din tabel crește, în timp ce indexarea menține o viteză aproximativ consistentă.
- Asigurându-vă că numai valorile unice sunt inserate în coloanele care au fost indexate ca unice, indexarea poate fi, de asemenea, utilizată pentru a asigura integritatea datelor. Acest lucru evită stocarea datelor duplicate în baza de date, ceea ce ar putea duce la probleme la efectuarea interogărilor sau a rapoartelor.
În general, indexarea în bazele de date oferă beneficii semnificative pentru îmbunătățirea performanței interogărilor, accesul eficient la date, sortarea optimizată a datelor, performanța constantă a datelor și integritatea datelor impuse
Dezavantajele indexării
- Indexarea necesită mai mult spațiu de stocare pentru a păstra structura datelor indexate, ceea ce ar putea crește dimensiunea totală a bazei de date.
- Creșterea sarcinii de întreținere a bazei de date: Indecșii trebuie menținuti pe măsură ce datele sunt adăugate, distruse sau modificate în tabel, ceea ce ar putea duce la creșterea sarcinii de întreținere a bazei de date.
- Indexarea poate reduce performanța de inserare și actualizare, deoarece structura datelor de index trebuie actualizată de fiecare dată când datele sunt modificate.
- Alegerea unui index poate fi dificilă: Poate fi dificil să alegeți indecșii potriviți pentru o anumită interogare sau aplicație și poate necesita o examinare detaliată a datelor și a modelelor de acces.
Caracteristicile indexării
- Dezvoltarea structurilor de date, cum ar fi B-copaci sau Cele mai importante coloane pentru indexarea coloanelor sunt selectate în funcție de frecvența cu care sunt utilizate și de felul de interogări la care sunt supuse. The cardinalitatea , selectivitatea și unicitatea coloanelor de indexare pot fi luate în considerare.
- Există mai multe tipuri diferite de index utilizate de bazele de date, inclusiv indici primari, secundari, grupați și non-cluster. Pe baza nevoilor particulare ale sistemului de baze de date, fiecare formă de index oferă avantaje și dezavantaje.
- Pentru ca sistemul de baze de date să funcționeze cât mai bine, este necesară întreținerea periodică a indexului. În funcție de modificările date și ale modelelor de utilizare, lucrările de întreținere implică construirea, actualizarea și eliminarea indecșilor.
- Optimizarea interogărilor bazei de date implică indexarea, care este esențială. Optimizatorul de interogări utilizează indecșii pentru a alege cea mai bună strategie de execuție pentru o anumită interogare, pe baza costului de accesare a datelor și a selectivității coloanelor de indexare.
- Bazele de date folosesc o serie de strategii de indexare, inclusiv de acoperire a indicilor, scanări numai indexate și indici parțiali. Aceste tehnici maximizează utilizarea indicilor pentru anumite tipuri de interogări și acces la date.
- Când blocuri de date necontigue sunt stocate într-un index, poate duce la fragmentarea indexului, ceea ce face ca indexul să fie mai puțin eficient. Întreținerea regulată a indexului, cum ar fi defragmentarea și reorganizarea, poate scădea fragmentare .
Concluzie
Indexarea este o tehnică foarte utilă care ajută la optimizarea timpului de căutare în Bază de date întrebări. Tabelul de indexare a bazei de date constă dintr-o cheie de căutare și indicator . Există patru tipuri de indexare: primară, secundară și indexare cu valori multiple. Indexarea primară este împărțită în două tipuri, densă și rară. Indexarea densă este utilizată atunci când tabelul de indexare conține înregistrări pentru fiecare cheie de căutare. Indexarea rară este utilizată atunci când tabelul de indexare nu utilizează o cheie de căutare pentru fiecare înregistrare. Utilizări de indexare pe mai multe niveluri B+ Arborele . Scopul principal al indexării este de a oferi o performanță mai bună pentru regăsirea datelor.
Întrebări frecvente despre indexare
Î.1: Ce este indexarea în baze de date?
Răspuns:
Indexarea este practic o tehnică care ajută la reducerea timpului de căutare al unei interogări de bază de date sau ajută la accesarea mai rapidă a bazei de date.
Q.2: Care sunt exemplele de indexare a bazelor de date?
Răspuns:
Câteva exemple comune de baze de date de indexare sunt Web of Science, DOAJ (Director of Open Access Journals)
Pentru mai multe detalii, puteți consulta Introducere în B+ Tree și Tipuri de chei din baza de date articol.
ce este o stivă java