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

Kdy přidat index do pole tabulky SQL (MySQL)?

Není vždy jasné, kde použít indexy v tabulkách SQL. Existují však některá obecná pravidla, která vám ve většině případů mohou pomoci při rozhodování.

  1. Umístěte index do sloupců, které se používají v klauzulích where
  2. Umístěte index na sloupce, ke kterým se připojujete.
  3. Snažte se nepoužívat více než 4–5 indexů ve sloupcích ve stejné tabulce.

A obecné pojmy, které byste měli mít na paměti, jsou:

  1. Jakýkoli index, který použijete, urychlí vyhledávání v těchto sloupcích.
  2. Jakýkoli index, který přidáte, způsobí, že vkládání do této tabulky bude o něco pomalejší.
  3. Z předchozích dvou. Je vaší odpovědností rozhodnout, kolik vložení a dotazů v tabulkách provedete, abyste se rozhodli, zda použít index a na které sloupce či nikoli.

UPRAVIT

Komentář @AndrewLazarus je opravdu důležitý a rozhodl jsem se jej přidat do odpovědi:

  1. Nepoužívejte indexy u sloupců s pouze několika různými hodnotami. Například sloupec, který obsahuje stav, kdy existuje jen několik stavů, nebo booleovskou hodnotu. Důvod, proč to neudělat, je ten, že vám index ve skutečnosti nepomůže, protože bude vydělen pouze počtem hodnot, a protože jich máte jen několik, nebude to mít žádný skutečný přínos. Tabulka by spotřebovala více místa s indexem a předliskem pomalejším při vkládání, ale při dotazování nedosáhnete výrazně lepšího výkonu


  1. Jak získáte více sad výsledků z jednoho CallableStatement?

  2. jak naplnit hodnotu sloupce mysql na základě vzorce?

  3. Pyodbc – název zdroje dat nebyl nalezen a není zadán žádný výchozí ovladač

  4. Žádná podpora pro OVER v MS SQL Server 2005?