„Indexul bazei de date” se referă la un tip special de structură a datelor care accelerează preluarea înregistrărilor dintr-un tabel de baze de date. Indicii bazei de date se asigură că puteți localiza și accesa datele într-un tabel de baze de date în mod eficient, fără a fi nevoie să căutați în fiecare rând de fiecare dată când este procesată o interogare a bazei de date.
Un index de bază de date poate fi comparat cu indexul unei cărți. Indicii din bazele de date vă indică înregistrarea pe care o căutați în baza de date, la fel cum pagina de index a unei cărți vă îndreaptă spre subiectul sau capitolul dorit.
Cu toate acestea, deși indicii bazei de date sunt esențiali pentru căutarea și accesul rapid și eficient al datelor, aceștia ocupă scrieri suplimentare și spațiu de memorie.
Ce este un index?
Indexurile bazei de date sunt tabele speciale de căutare formate din două coloane. Prima coloană este cheia de căutare, iar a doua este indicatorul de date. Cheile sunt valorile pe care doriți să le căutați și să le preluați din tabelul bazei de date, iar indicatorul sau referința stochează adresa blocului de disc în baza de date pentru acea cheie de căutare specifică. Câmpurile cheie sunt sortate astfel încât să accelereze operațiunea de recuperare a datelor pentru toate interogările dvs.
De ce să folosiți indexarea bazei de date?
Vă voi arăta indicii bazei de date într-un mod simplificat aici. Să presupunem că aveți un tabel de baze de date cu cei opt angajați care lucrează într-o companie și că doriți să căutați informațiile pentru ultima intrare a tabelului. Acum, pentru a găsi intrarea anterioară, trebuie să căutați fiecare rând al bazei de date.
Cu toate acestea, să presupunem că ați sortat alfabetic tabelul pe baza prenumelui angajaților. Deci, aici cheile de indexare se bazează pe „coloana de nume”. În acest caz, dacă căutați ultima intrare, „Zack, ”Puteți sări la mijlocul mesei și să decideți dacă intrarea noastră vine înainte sau după coloană.
După cum știți, va veni după rândul din mijloc și puteți împărți din nou rândurile după rândul din mijloc la jumătate și puteți face o comparație similară. În acest fel, nu este nevoie să parcurgeți fiecare rând pentru a găsi ultima intrare.
Dacă compania ar avea 1.000.000 de angajați și ultima intrare a fost „Zack”, ar trebui să căutați 50.000 de rânduri pentru a-i găsi numele. În timp ce, cu indexarea alfabetică, o puteți face în câțiva pași. Vă puteți imagina acum cât de rapidă poate fi căutarea și accesul la date cu indexarea bazei de date.
Legate de: 13 Cele mai importante comenzi SQL pe care orice programator ar trebui să le cunoască
Diferite metode de organizare a fișierelor pentru indexurile bazei de date
Indexarea depinde în mare măsură de mecanismul de organizare a fișierelor utilizat. De obicei, există două tipuri de metode de organizare a fișierelor utilizate în indexarea bazelor de date pentru stocarea datelor. Acestea sunt discutate mai jos:
1. Fișier index comandat: Aceasta este metoda tradițională de stocare a datelor index. În această metodă, valorile cheie sunt sortate într-o anumită ordine. Datele dintr-un fișier indexat comandat pot fi stocate în două moduri.
- Index rar: În acest tip de indexare, se creează o intrare de index pentru fiecare înregistrare.
- Indicele dens: În indexarea densă, este creată o intrare de index pentru unele înregistrări. Pentru a găsi o înregistrare în această metodă, trebuie mai întâi să găsiți cea mai semnificativă valoare a cheii de căutare din intrările index care sunt mai mici sau egale cu valoarea cheii de căutare pe care o căutați.
2. Organizarea fișierului Hash: În această metodă de organizare a fișierelor, o funcție hash determină locația sau blocul de disc în care este stocată o înregistrare.
Tipuri de indexare a bazelor de date
În general, există trei metode de indexare a bazelor de date. Sunt:
- Indexare clusterizată
- Indexare non-grupată
- Indexare pe mai multe niveluri
1. Indexare clusterizată
În indexarea în grup, un singur fișier poate stoca mai mult de două înregistrări de date. Sistemul păstrează datele reale în indexare grupată, mai degrabă decât în indicatori. Căutarea este eficientă din punct de vedere al costurilor, cu indexarea clusterizată, deoarece stochează toate datele aferente în același loc.
Un index de cluster folosește fișiere de date ordonate pentru a se defini. De asemenea, alăturarea mai multor tabele de baze de date este foarte obișnuită cu acest tip de indexare.
De asemenea, este posibil să creați un index bazat pe coloane non-primare care nu sunt unice pentru fiecare cheie. În astfel de ocazii, combină mai multe coloane pentru a forma valorile cheie unice pentru indexurile grupate.
Deci, pe scurt, indicii de grupare sunt grupați tipuri de date similare și se creează indici pentru aceștia.
Exemplu: Să presupunem că există o companie care are peste 1.000 de angajați în 10 departamente diferite. În acest caz, compania ar trebui să creeze indexarea clusterizării în SGBD pentru a indexa angajații care lucrează în același departament.
Fiecare cluster cu angajați care lucrează în același departament va fi definit ca un singur cluster, iar indicatorii de date din indici se vor referi la cluster ca o entitate întreagă.
Legate de: Ce sunt cheile străine în bazele de date SQL?
2. Indexare non-grupată
Indexarea non-grupată se referă la un tip de indexare în care ordinea rândurilor index nu este aceeași cu modul în care datele originale sunt stocate fizic. În schimb, un index non-cluster indică stocarea datelor în baza de date.
Exemplu: Indexarea non-grupată este similară unei cărți care are o pagină de conținut ordonată. Aici, indicatorul de date sau referința este pagina conținutului ordonat care este sortată alfabetic, iar datele reale sunt informațiile de pe paginile cărții. Pagina de conținut nu stochează informațiile de pe paginile cărții în ordinea lor.
3. Indexare pe mai multe niveluri
Indexarea pe mai multe niveluri este utilizată atunci când numărul de indici este foarte mare și nu poate stoca indexul principal în memoria principală. După cum știți, indicii bazei de date cuprind chei de căutare și indicatori de date. Când dimensiunea bazei de date crește, crește și numărul de indici.
Cu toate acestea, pentru a asigura o operare rapidă de căutare, sunt necesare înregistrări de index pentru a fi păstrate în memorie. Dacă se utilizează un index cu un singur nivel atunci când numărul indexului este mare, este puțin probabil să stocheze acel index în memorie din cauza dimensiunii sale și a acceselor multiple.
Aici intervine indexarea pe mai multe niveluri. Această tehnică împarte indexul de nivel unic în mai multe blocuri mai mici. După descompunere, blocul de nivel exterior devine atât de mic încât poate fi stocat cu ușurință în memoria principală.
Legate de: Cum să vă conectați la o bază de date MySQL cu Java
Ce este fragmentarea indexului SQL?
Când orice ordine a paginilor index nu se potrivește cu ordinea fizică din fișierul de date provoacă fragmentarea indexului SQL. Inițial, toți indexurile SQL sunt fără fragmentare, dar pe măsură ce utilizați în mod repetat baza de date (Inserați / Ștergeți / Modificați datele), aceasta poate provoca fragmentarea.
În afară de fragmentarea bazei de date, baza de date se poate confrunta și cu alte probleme vitale, cum ar fi corupția bazei de date. Poate duce la pierderea datelor și la un site Web afectat. Dacă faceți afaceri cu site-ul dvs. web, poate fi o lovitură fatală pentru dvs.
Recovery Toolbox for SQL Server ajută la remedierea fișierelor MDF corupte ale unui MS SQL Server pentru toate versiunile.
Citiți în continuare
- Programare
- SQL
- Analiza datelor
- Bază de date
Zadhid Powell este un inginer informatic care a renunțat la codare pentru a începe să scrie! Alături de el, este marketer digital, pasionat de tehnologie, expert în SaaS, cititor și adept al tendințelor software. Deseori îl puteți găsi legănând cluburile din centrul orașului cu chitara sau inspectând scufundări pe fundul oceanului.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Încă un pas…!
Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.