Index clusterizat vs non-clusterizat: diferențe cheie cu exemplul

Ce este un index?

Un index este o cheie construită dintr-una sau mai multe coloane din baza de date care accelerează preluarea rândurilor din tabel sau din vizualizare. Această cheie ajută o bază de date precum Oracle, SQL Server, MySQL etc. să găsească rapid rândul asociat valorilor cheii.

Două tipuri de indexuri sunt:

  • Index clusterizat
  • Index non-clusterizat

În acest tutorial , veți afla:

  • Ce este un index?
  • Ce este un index clusterizat?
  • Ce este indicele non-grupat?
  • Caracteristica indexului clusterizat
  • Caracteristicile indexurilor non-clusterizate
  • Un exemplu de index clusterizat
  • Un exemplu de non-cluster index clusterizat
  • Diferențele dintre indexul clusterizat și indexul non clusterizat
  • Avantajele indexului clusterizat
  • Avantajele indexului non-clusterizat
  • Dezavantaje ale clusterului indexat Index
  • Dezavantaje ale indexului non-cluster

Ce este un index clusterizat?

Indexul cluster este un tip de index care sortează rândurile de date în tabel cu valorile lor cheie. În baza de date, există un singur index grupat pe tabel.

Un index grupat definește ordinea în care datele sunt stocate în tabel, care pot fi sortate într-un singur mod. Deci, poate exista un singur index clusterizat pentru fiecare tabel. Într-un RDBMS, de obicei, cheia principală vă permite să creați un index grupat pe baza acelei coloane specifice.

Ce este indexul non-cluster?

Un index non-cluster stochează datele la o locație și indicii la o altă locație. Indexul conține indicii către locația respectivelor date. Un singur tabel poate avea mai mulți indici ne-grupați, deoarece un index din indexul non-grupat este stocat în locuri diferite.

De exemplu, o carte poate avea mai mult de un index, unul la început care afișează conținutul unei unități de carte în timp ce al doilea index arată indexul termenilor în ordine alfabetică.

Un index care nu este grupat este definit în câmpul fără ordonare al tabelului. Acest tip de metodă de indexare vă ajută să îmbunătățiți performanța interogărilor care utilizează chei care nu sunt atribuite ca cheie primară. Un index non-cluster vă permite să adăugați o cheie unică pentru un tabel.

DIFERENȚA CHEIE

  • Cluster index este un tip de index care sortează rândurile de date din tabel pe valorile lor cheie, în timp ce indexul non-cluster stochează datele la o locație și indicii la o altă locație.
  • Indexul clusterizat stochează paginile de date în nodurile frunze ale indexului, în timp ce metoda indexului non-cluster nu stochează niciodată paginile de date în nodurile frunze ale indexului.
  • Indexul cluster nu necesită spațiu suplimentar pe disc, în timp ce indexul non-cluster necesită spațiu suplimentar pe disc.
  • Indexul cluster oferă acces mai rapid la date, pe de altă parte, indexul non-cluster este mai lent.

Caracteristica indexului grupat

  • Stocare de date implicită și sortată
  • Folosiți doar una sau mai multe coloane pentru un index
  • Ajută să stocați date și indexați împreună
  • Fragmentare
  • Operațiuni
  • Scanare index indexată și căutare index
  • Căutare cheie

Caracteristicile indexurilor non-cluster

  • Stocați numai valorile cheie
  • Pointerii către rândurile Heap / Index clusterizate
  • Permite date secundare acces
  • Conectați la date
  • Operațiuni de scanare index și căutare index
  • Puteți crea un non index clusterizat pentru un tabel sau vizualizare
  • Fiecare rând index din indexul nonclustered stochează valoarea cheii noncluster și un localizator de rânduri

Un exemplu de index clusterizat

În exemplul de mai jos, SalesOrderDetailID este indexul grupat. Exemplu de interogare pentru extragerea datelor

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Un exemplu de index non-cluster

În exemplul de mai jos, se creează un index non-cluster pe OrderQty și ProductID după cum urmează

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

Următoarea interogare va fi recuperată mai rapid în comparație cu indexul grupat.

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Diferențele dintre grupate Index și index non-cluster

Parametri Clusterizat Non-grupat
Utilizați pentru Puteți sorta înregistrările și stoca fizic indexul grupat în memorie conform ordinii . Un index non-cluster vă ajută să creați o ordine logică pentru rândurile de date și folosește indicatori pentru fișiere de date fizice.
Metoda de stocare Vă permite să stocați pagini de date în nodurile frunze ale indexului. Această metodă de indexare nu stochează niciodată pagini de date în nodurile frunze ale indexului.
Dimensiune Dimensiunea indexului grupat este destul de mare. Dimensiunea indexului non-cluster este mică în comparație cu indexul clusterizat.
Accesarea datelor Mai rapid Mai lent în comparație cu indexul grupat
Spațiu suplimentar pe disc Nu este necesar Necesar pentru a stoca indexul separat
Tipul cheii În mod implicit, cheile principale ale tabelului sunt un index grupat. Poate fi folosit cu o constrângere unică pe masă, care acționează ca o cheie compusă.
Caracteristică principală Un index grupat poate îmbunătăți performanțele de recuperare a datelor. Ar trebui să fie creat pe coloane care sunt utilizate în jonctiuni.

Avantajele indexului grupat

Avantajele / avantajele indexului grupat sunt:

  • Indicii grupați sunt o opțiune ideală pentru interval sau grupare cu întrebări max, min, de tip contare
  • În acest tip de index, o căutare poate merge direct la un anumit punct din date, astfel încât să poate continua să citească secvențial de acolo.
  • Metoda indexului clusterizat utilizează mecanismul de localizare pentru a localiza intrarea indexului la începutul unui interval.
  • Este o metodă eficientă pentru căutarea intervalului atunci când este solicitată o gamă de valori ale cheilor de căutare.
  • Vă ajută să minimizați transferurile de pagini și să maximizați accesările în cache.

Avantajele indexului non-cluster

Pro-urile utilizării indexului non-cluster sunt:

  • Un index non-cluster vă ajută pentru a prelua datele rapid din tabelul bazei de date.
  • Vă ajută să evitați costurile generale asociate cu indexul grupat
  • Un tabel poate avea mai mulți indici non-grupați în RDBMS. Deci, poate fi folosit pentru a crea mai multe indexuri.

Dezavantaje ale indexului clusterizat

Iată, dezavantaje / dezavantaje ale utilizării indexului clusterizat:

  • O mulțime de inserții în non-secvențiale comanda
  • Un index grupat creează o mulțime de diviziuni constante de pagini, care includ pagini de date, precum și pagini index.
  • Lucru suplimentar pentru SQL pentru inserții, actualizări și ștergeri.
  • Un index clusterizat durează mai mult timp pentru actualizarea înregistrărilor atunci când câmpurile din indexul clusterizat sunt modificate.
  • Nodurile frunze conțin în mare parte pagini de date în indexul clusterizat.

    Dezavantajele indexului non-cluster

    Iată, dezavantaje / dezavantaje ale utilizării indexului non-cluster:

Write a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *