sql >> Databáze >  >> RDS >> Mysql

Všechny sloupce tabulky by měly být indexovány nebo ne mysql databáze?

Vytvoření indexu vyžaduje další místo na disku a protože příliš mnoho indexů může způsobit problémy vyplývající z omezení velikosti souborových systémů, je třeba pečlivě zvážit výběr správných polí k indexování.

Vzhledem k tomu, že indexy se používají pouze k urychlení vyhledávání odpovídajících polí v záznamech, je logické, že indexování polí používaných pouze pro výstup by bylo jednoduše plýtváním místa na disku a časem zpracování při provádění operace vložení nebo odstranění, a tedy je třeba se vyhnout. Vzhledem k povaze binárního vyhledávání je také důležitá mohutnost nebo jedinečnost dat. Indexování na poli s mohutností 2 by rozdělilo data na polovinu, zatímco mohutnost 1 000 by vrátila přibližně 1 000 záznamů. S tak nízkou mohutností je efektivita redukována na lineární řazení a optimalizátor dotazů se vyhne použití indexu, pokud je mohutnost větší než 30 % čísla záznamu, takže index v podstatě plýtvá místem.

Takže je lepší přidat indexování na skupinu sloupců.



  1. Platné kontroly data v Oracle

  2. Vyberte náhodný vzorek výsledků z výsledku dotazu

  3. zobrazení dne prostřednictvím uložené procedury

  4. Jak získat zřetelný seznam slov používaných ve všech záznamech pole pomocí MS SQL?