MySQL - indexy

Napsal O webu (») 9. 2. 2007 v kategorii Databáze, přečteno: 3367×

Zrychleme naší databázi


Správně vytvořené indexy mohou výrazně zvýšit rychlost dotazů, naopak špatně navrhnuté indexy mohou rychlosti databáze hodně uškodit. Je proto důležité, vybrat správné indexy na správné atributy. K tomu je třeba znát, jak takový index funguje. Nejlepší a nejčastější vysvětlení je, že si naši databázi představíme v pohádce O knihovnici.


Byla jednou jedna knihovnice a ta házela příchozí knihy do regálu jednu za druhou. Když měla knihu najít, prochází je otrocky všechny po řadě, dokud nenajde daný kus. Jednoho dne bylo knížek hodně a knihovnici začaly z chození bolet nohy. Tak přišla jednou o víkendu a knihy sepsala a seřadila podle abecedy. Když pak přišel zákazník pro knihu, knihovnice se podívala do seznamu a zjistila, ve kterém regálu jsou uloženy knihy začínající na stejné písmenko. Pak stačilo prohledat jednu malou část regálu. Když přišla nová kniha, knihovnice knihu nemohla jen tak položit do regálu. Musela ji zapsat do seznamu a zařadit.

Tak podle této hloupoučké pohádky funguje indexování. Index trvá nějaký čas vytvořit a vkládání do tabulky zabere víc času. Naopak vyhledávání podle indexu je mnohonásobně rychlejší.

Použití indexů


Obecně používáme indexy v těchto případech:

Ve funkci nad daným atributem se:
- hledá
- pořizuje setříděný seznam (výpisy apod.)
- realizuje spojení s jinou tabulkou
- ověřuje jednoznačnost v téže tabulce
- ověřuje existence v jiné tabulce

Druhy indexování


U takovéto funkce určíme četnost používání a navrhneme způsob indexování:

a) dočasný index: nejčastější použití u ročních/měsíčních výpisů apod. V krátké době provádíme náročné SELECTy. Po provedení index rušíme. Má-li tabulka extrémně hodně řádků, rušíme index při INSERTu. Po vložení index obnovíme. V tomto případě je doba vložení s indexem delší, než doba zrušení/obnovení indexu.

b) trvalý index : indexujeme pravidelně používané položky podle pravidel výše. Typickým příkladem je indexování cizího klíče. V některých případech se vyplatí indexovat i klíč primární.

Velkou výhodou indexů je, že se dají upravovat poměrně snadno. Není problém provést testy a rozhodnout se, jestli je lepší dočasný,stálý nebo žádný index.


Další typy indexů


a) Jedinečné indexy: Hlídají, aby se žádná z hodnot v indexovaném sloupci neopakovala. Na jedné tabulce smí být definováno více jedinečných indexů.

b) Primární klíč: Každá hodnota je jedinečná a není NULL. Každá tabulka smí mít nejvýše jeden primární klíč.

c) Fulltextový index: Slouží k prohledávání fulltextu.

Autor: Honzy
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel tři a tři