Pokud jde o otázky týkající se indexů, index je nejen žádoucí, ale je potřebný věci "urychlit". Pokud tomu rozumím (laicky řečeno), funkcí indexu je urychlit vyhledávání a obnovu dat v tabulce.
Důvody, proč používat indexy:
- Určitě identifikujte každý řádek v každé tabulce (primárním klíčem je konec konců index)
- Indexy jsou seřazeny (i když data nejsou)
- Urychlení vyhledávání a filtrů:Index urychluje obnovu dat, protože „drží“ umístění dat v tabulce („určuje“ data, která chcete obnovit). Databázovému stroji to také usnadňuje filtrování dat (vždy je rychlejší a jednodušší filtrovat seřazeno data než zakódovaná údaje)
- Optimalizujte způsob obnovy dat při použití souvisejících tabulek:Každý cizí klíč musí být indexován, aby se urychlily dotazy, které zahrnují vztahy primárního a cizího klíče
Některá "pravidla pro palec", která používám k rozhodování o tom, která pole je třeba indexovat:
- Každý primární klíč je indexován (samozřejmé jedna:primární klíč musí být jedinečný a ne null)
- Každý cizí klíč musí být indexován (aby byly vztahy mezi primárním a cizím klíčem efektivní)
- Každé číselné nebo datumové pole, ve kterém potřebuji provádět vyhledávání, musí být indexováno. To znamená, že se snažím vyhnout
double
(nebo jakýkoli jiný číselný typ s plovoucí desetinnou čárkou), která mají být indexována, protože se obecně používají k ukládání hodnot, které nejsou určeny k prohledávání. - Každý
char
nebovarchar
pole, na kterém potřebuji provádět vyhledávání, musí být indexováno. Snažte se vyhnout indexům natext
pole, protože v nich mohou mít velmi velké hodnoty. - Vyhněte se binární indexování (
blob
) pole... to nedává smysl - Ne podlehnout pokušení indexovat všechno. Udělejte si čas na rozhodnutí, která pole musíte být indexována a která pole nesmí být indexován.