sql >> Database teknologi >  >> RDS >> Mysql

Vil indekser blive brugt, hvis du forespørger på en undergruppe af indeksets kolonner?

MySQL-dokumentation gør et godt stykke arbejde med at forklare, hvordan indekser med flere kolonner fungerer her .

Generelt kan indekset bruges til en where klausul, når et antal kolonner længst til venstre side af indekset har ligestillingsbetingelser. Din where klausuler bruger følgende kolonner:

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

Ethvert indeks, der starter med kolonnerne c1 og c2 vil normalt blive brugt til disse forespørgsler. MySQL kan anvende andre betingelser for at bruge indekset, såsom selektivitet. Det vil sige, hvis c1 og c2 har konstante værdier (for eksempel), så vil brug af et indeks ikke gavne forespørgslen.

For at optimere alle disse kombinationer kan du oprette to indekser:c1, c2, c3, c4 og c2, c1, c5 . Årsagen til at bytte c1 og c2 i det andet indeks er så du kunne håndtere forespørgsler, hvor betingelsen er på c2 men ikke c1 , såvel som det omvendte.



  1. hvordan vælger man alle kolonner uden PRIMÆR nøgle i mysql?

  2. mybatis generator Kolonnenavnsmønster kan ikke være NULL eller tomt

  3. Afrunding af en MYSQL datetime til tidligste 15 minutters interval i millisekunder (PHP)

  4. Sådan får du sidste 15 dages optegnelser i MySQL