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

Použijí se indexy, když se dotazujete na podmnožinu sloupců indexu?

Dokumentace MySQL dobře vysvětluje, jak fungují vícesloupcové indexy zde .

Obecně lze index použít pro where klauzule při určitém počtu sloupců zcela vlevo strany indexu mají podmínky rovnosti. Vaše where klauzule používají následující sloupce:

  • c1, c2
  • c1, c2, c3, c4
  • c1, c2
  • c1, c2, c5

Libovolný index začínající sloupci c1 a c2 by se normálně používal pro tyto dotazy. MySQL může použít další podmínky pro použití indexu, jako je selektivita. Tedy pokud c1 a c2 mít konstantní hodnoty (například), pak použití indexu nebude pro dotaz přínosem.

Chcete-li optimalizovat všechny tyto kombinace, můžete vytvořit dva indexy:c1, c2, c3, c4 a c2, c1, c5 . Důvod pro výměnu c1 a c2 ve druhém indexu je, abyste mohli zpracovávat dotazy, kde je podmínka na c2 ale ne c1 , stejně jako naopak.



  1. Jak funguje DENSE_RANK() v SQL Server

  2. Jak získat datum ze sady výsledků

  3. Python peewee save() nefunguje podle očekávání

  4. Není možné nainstalovat PG drahokam na můj mac pomocí Mavericks