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

Může vytváření indexu používat existující indexy?

MySQL obvykle přestaví celou tabulku, když přidáte index, takže všechny existující se také přestaví. To může být pomalé.

Jedinou výjimkou je přidání indexu pomocí pluginu InnoDB, který to neudělá.

Pokud vím, při vytváření indexu vždy provádí úplné skenování tabulky, ale MOHLO by to provádět skenování indexu, pokud byste přidávali index, který měl stejné (nebo podmnožinu) sloupců jako jiný index. Takové indexy jsou obvykle užitečné pouze v případě, že jsou sloupce v jiném pořadí.

Při použití burzovního mysql platí, že čím více indexů máte, tím pomaleji bude vytvoření nového, protože také přestavuje stávající indexy.

S pluginem si myslím, že v tom není žádný rozdíl.

Ať tak či onak, pokud plánujete přidat několik indexů, měli byste je dělat všechny najednou, nikoli po jednom.



  1. Výsledky dotazů PHP/MySQL

  2. Laravel kdeV NEBO kdeV

  3. Standardní metoda pro funkci IF() MySQL

  4. Žádné jedinečné omezení odpovídající daným klíčům pro referenční tabulku