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

Optimalizace databáze MYSQL pomocí indexování

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:

  1. Určitě identifikujte každý řádek v každé tabulce (primárním klíčem je konec konců index)
  2. Indexy jsou seřazeny (i když data nejsou)
  3. 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)
  4. 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 nebo varchar pole, na kterém potřebuji provádět vyhledávání, musí být indexováno. Snažte se vyhnout indexům na text 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.


  1. Je možné vypnout zpracování nabídek v příkazu Postgres COPY s formátem CSV?

  2. mysql_connect():Nelze vytvořit žádné připojení, protože jej cílový počítač aktivně odmítl

  3. Bezplatné metody pro opravu poškozené databáze MySQL

  4. Úložiště dotazů SQL Server