„Databázový index“ označuje špeciálny druh dátovej štruktúry, ktorá urýchľuje načítanie záznamov z databázovej tabuľky. Databázové indexy zaručujú, že môžete efektívne vyhľadať a pristupovať k údajom v databázovej tabuľke bez toho, aby ste pri každom spracovaní databázového dotazu museli prehľadávať každý riadok.

Index databázy možno prirovnať k indexu knihy. Indexy v databázach vás nasmerujú na záznam, ktorý hľadáte v databáze, rovnako ako indexová stránka knihy smeruje na požadovanú tému alebo kapitolu.

Aj keď sú databázové indexy nevyhnutné pre rýchle a efektívne vyhľadávanie a prístup k údajom, zaberajú ďalší zápis a pamäťový priestor.

Čo je to index?

Databázové indexy sú špeciálne vyhľadávacie tabuľky pozostávajúce z dvoch stĺpcov. Prvý stĺpec je vyhľadávací kľúč a druhý údajový ukazovateľ. Kľúčmi sú hodnoty, ktoré chcete vyhľadať a načítať z vašej databázovej tabuľky, a ukazovateľ alebo referencia uloží adresu bloku disku v databáze pre tento konkrétny vyhľadávací kľúč. Kľúčové polia sú zoradené tak, aby urýchlili operáciu načítania údajov pre všetky vaše dotazy.

instagram viewer

Prečo používať indexovanie databáz?

Tu vám zjednodušeným spôsobom ukážem databázové indexy. Predpokladajme, že máte databázovú tabuľku s ôsmimi zamestnancami pracujúcimi v spoločnosti a chcete vyhľadať informácie o poslednom zadaní tabuľky. Ak chcete nájsť predchádzajúcu položku, musíte prehľadať každý riadok databázy.

Predpokladajme však, že ste tabuľku zoradili podľa abecedy podľa krstného mena zamestnancov. Tu sú teda indexovacie kľúče založené na stĺpci „name“. V takom prípade, ak hľadáte posledný záznam, „Zack„, Môžete preskočiť na stred tabuľky a rozhodnúť sa, či náš záznam príde pred alebo za stĺpec.

Ako viete, príde po strednom rade a vy môžete znova rozdeliť riadky po strednom rade na polovicu a vykonať podobné porovnanie. Týmto spôsobom nemusíte prechádzať každý riadok, aby ste našli posledný záznam.

Ak by spoločnosť mala 1 000 000 zamestnancov a posledný záznam bol „Zack“, bolo by potrebné vyhľadať jeho meno v 50 000 riadkoch. Zatiaľ čo pomocou abecedného indexovania to môžete urobiť v niekoľkých krokoch. Teraz si môžete predstaviť, o koľko rýchlejšie vyhľadávanie a prístup k údajom sa môže stať pri indexovaní databázy.

Súvisiace: 13 najdôležitejších príkazov SQL, ktoré by mal poznať každý programátor

Rôzne metódy organizácie súborov pre databázové indexy

Indexovanie veľmi závisí od použitého mechanizmu organizácie súborov. Spravidla sa pri indexovaní databázy na ukladanie údajov používajú dva typy metód organizácie súborov. Ďalej sa o nich diskutuje:

1. Objednaný indexový súbor: Toto je tradičná metóda ukladania údajov indexu. V tejto metóde sú kľúčové hodnoty zoradené v konkrétnom poradí. Údaje v usporiadanom indexovom súbore je možné uložiť dvoma spôsobmi.

  • Riedky index: Pri tomto type indexovania sa pre každý záznam vytvorí položka indexu.
  • Hustý index: Pri hustom indexovaní sa pre niektoré záznamy vytvorí položka indexu. Ak chcete nájsť záznam v tejto metóde, musíte najskôr nájsť najvýznamnejšiu hodnotu kľúča vyhľadávania z položiek indexu, ktoré sú menšie alebo rovnaké ako hodnota kľúča vyhľadávania, ktorú hľadáte.

2. Organizácia súborov hash: V tejto metóde organizácie súborov určuje funkcia hash umiestnenie alebo blok disku, kde je uložený záznam.

Typy indexovania databáz

Spravidla existujú tri spôsoby indexovania databázy. Oni sú:

  • Klastrované indexovanie
  • Nezoskupené indexovanie
  • Viacúrovňové indexovanie

1. Klastrované indexovanie

Pri zoskupenom indexovaní môže jeden jediný súbor obsahovať viac ako dva dátové záznamy. Systém uchováva skutočné údaje v zoskupenom indexovaní, nie v ukazovateľoch. Vyhľadávanie je nákladovo efektívne so zoskupeným indexovaním, pretože všetky príslušné údaje sa ukladajú na rovnakom mieste.

Klastrový index používa na svoju definíciu usporiadané dátové súbory. Pri tomto type indexovania je tiež veľmi časté spájanie viacerých databázových tabuliek.

Je tiež možné vytvoriť index na základe neprimárnych stĺpcov, ktoré nie sú jedinečné pre každý kľúč. Pri takýchto príležitostiach kombinuje viac stĺpcov a vytvára jedinečné hodnoty kľúčov pre zoskupené indexy.

Stručne povedané, klastrové indexy sú tam, kde sú zoskupené podobné dátové typy a vytvárajú sa pre ne indexy.

Príklad: Predpokladajme, že existuje spoločnosť, ktorá má viac ako 1 000 zamestnancov v 10 rôznych oddeleniach. V takom prípade by spoločnosť mala vo svojom DBMS vytvoriť klastrové indexovanie na indexovanie zamestnancov, ktorí pracujú v rovnakom oddelení.

Každý klaster so zamestnancami pracujúcimi v rovnakom oddelení bude definovaný ako jeden klaster a údajové ukazovatele v indexoch budú odkazovať na klaster ako celok.

Súvisiace: Čo sú cudzie kľúče v databázach SQL?

2. Nezoskupené indexovanie

Nezoskupené indexovanie sa týka typu indexovania, keď poradie riadkov indexu nie je rovnaké ako fyzicky uložené pôvodné údaje. Namiesto toho nekupovaný index ukazuje na úložisko údajov v databáze.

Príklad: Nezoskupené indexovanie je podobné ako v prípade knihy, ktorá má stránku s usporiadaným obsahom. Dátový ukazovateľ alebo odkaz je tu zoradená stránka s obsahom, ktorá je zoradená podľa abecedy, a skutočnými údajmi sú informácie na stránkach knihy. Stránka s obsahom neukladá informácie na stránkach knihy v poradí.

3. Viacúrovňové indexovanie

Viacúrovňové indexovanie sa používa, keď je počet indexov veľmi vysoký a nemôže uložiť primárny index do hlavnej pamäte. Ako možno viete, databázové indexy zahŕňajú vyhľadávacie kľúče a ukazovatele údajov. Keď sa veľkosť databázy zvýši, rastie aj počet indexov.

Aby sa však zaistilo rýchle vyhľadávanie, je potrebné v pamäti uchovávať záznamy indexu. Ak sa použije index jednej úrovne, keď je počet indexov vysoký, je nepravdepodobné, že by ste index uložili do pamäte kvôli jeho veľkosti a viacerým prístupom.

Tu vstupuje do hry viacúrovňové indexovanie. Táto technika rozdeľuje index jednej úrovne na niekoľko menších blokov. Po rozbití sa blok vonkajšej úrovne stane taký malý, že ho možno ľahko uložiť do hlavnej pamäte.

Súvisiace: Ako sa pripojiť k databáze MySQL pomocou Java

Čo je to fragmentácia indexu SQL?

Ak sa ktorékoľvek poradie indexových stránok nezhoduje s fyzickým poradím v dátovom súbore, spôsobí to fragmentáciu indexu SQL. Spočiatku sú všetky indexy SQL bez fragmentácie, ale keďže opakovane používate databázu (vkladanie / mazanie / zmena údajov), môže to spôsobiť fragmentáciu.

Okrem fragmentácie databázy môže vaša databáza čeliť aj ďalším dôležitým problémom, ako je poškodenie databázy. Môže to viesť k strate údajov a poškodeniu webových stránok. Ak podnikáte so svojím webom, môže to byť pre vás smrteľná rana.

Email
Dáta servera SQL Server boli poškodené? Pokúste sa ho obnoviť pomocou nástroja SQL Recovery Toolbox

Recovery Toolbox pre SQL Server pomáha opraviť poškodené súbory MDF servera MS SQL pre všetky verzie.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • SQL
  • Analýza dát
  • databázy
O autorovi
Zadhid A. Powell (12 publikovaných článkov)

Zadhid Powell je počítačový inžinier, ktorý sa vzdal kódovania, aby mohol začať písať! Okrem toho je digitálnym marketérom, technologickým nadšencom, expertom na SaaS, čitateľom a veľkým nadšencom softvérových trendov. Často ho môžete nájsť na hojdačke v kluboch s gitarou alebo pri potápaní na dne oceánu.

Všetky videoklipy od Zadhid A. Powell

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.