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

MySQL:Rozdíl mezi `... ADD INDEX(a); ... PŘIDAT INDEX(b);` a `... PŘIDAT INDEX(a,b);`?

Kombinovaný INDEX je kombinací kláves "a" a "b". Výrazně zlepšuje přístup, pokud jsou součástí vyhledávacího výrazu „a“ nebo „a“ AND „b“.

Tento index není užitečný, pokud ve svých příkazech SQL zadáte pouze „b“.

Proto může být užitečné poskytnout dva různé indexy – ale měly by používat různá jména.

V závislosti na vzorech přístupu bych doporučil index na "a" a "b" a další index na "b", pokud to odpovídá vašim potřebám.

Mějte prosím na paměti, že jakýkoli další index zpomaluje databázi při všech operacích, které mění data. Někdy je lepší držet některé indexy pryč. Obvykle je dobrou radou NEPOUŽÍVAT indexy v žádném sloupci tabulky.

Ještě jedna nápověda:Chcete-li rozhodnout, zda by měl být použit INDEX(a,b) nebo INDEX(b,a), podívejte se na distribuci vašich dat. Hodnoty s vyšším rozptylem různých hodnot vložte do prvního sloupce indexu, abyste zvýšili selektivitu tohoto indexu. Tato hodnota je obvykle založena na kvalitě prvního prvku indexu.

Například index ve sloupcích NAME a SEX by měl být vytvořen jako INDEX(NAME, SEX), protože existuje mnohem více jmen, která se liší pohlavím(a?).



  1. Přidejte vztah cizího klíče mezi dvě databáze

  2. převést libovolný řetězec data na časové razítko bez časového pásma

  3. Vkládání více hodnot do MySQL najednou

  4. Uzel Mysql nemůže zařadit dotaz po volání quit