Vícesloupcový index rubrika: Databáze: SQL

3 Fidelio
položil/-a 5.5.2016

Zdravím,

kdy používáte v mysql vícesloupcový index? (tedy ne více indexu po jednou sloupci, ale jeden na více sloupců)

Napadá mě použití kdy chci produkty, které mají cenu > 0, příznak zobrazovat = true a sklad > 0

čili index na cena, zobrazit, sklad ? Chápu to správně, nebo i zde 3 různé indexy?

Pokud je to takto ok, záleží na pořadí těchto sloupců = musí být stejné jako je ve WHERE?

Díky!

Komentáře

  • Jakub Macek : Já bych měl protiotázku. Mít tři indexy po jednom sloupci v MySQL funguje? Já jsem měl stále za to, že MySQL je ochoten použít pouze jeden index na jednotlivý poddotaz. 5.5.2016
  • dzejkob : Funguje, ale bídně - resp. pro pouze equal podmínky. Dá se to ale pořád použít - tj. stavy, které chce člověk indexovat, třeba výše zmíněná "cena > 0" je nutno zaindexovat jako třeba tinyint 0/1 price_not_blank. Co se komplexní logiky v případě optimalizací týče, tak mysql opravdu není moc dobrý nástroj. 6.5.2016
odkaz
6 roman.hocke
odpověděl/-a 5.5.2016
 
upravil/-a 5.5.2016

Například když potřebuju UNIQUE přes víc sloupců. Typicky třeba vazební tabulky. Detaily viz http://dev.mysql.com/doc/refman/5.7/en/multiple-column-indexes.html

Pro zobrazení všech 8 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.