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

MySQL flere indekser vs multi-kolonne indeks til søgning

Du skal forstå, at MySQL (i tilfælde af InnoDB) kun bruger det venstre præfiks af dine indekser. Så hvis indekset er i felt1 + felt2, forespørges der kun med felt2 i Hvor kan ikke gøre brug af hele indekset.

Og hvis Field1 + Field2 + Field3 er indekset, en forespørgsel med kun Field1 & Field3 i Hvor det samme ville ske.

Mulighed 1

Du skal oprette et separat indeks for hvert søgescenarie, hvis du vil optimere hver søgning. Men hvis tabellerne er store, vil indeksene også blive ekstremt store. Hvis disse søgeforespørgsler foretages meget ofte, ville det være det værd.

Mulighed 2

Du kan bruge et smart trick, hvis dine søgninger har en lav selektivitet (dvs. køn) ved at placere kolonnerne med lav selektivitet til venstre mest og bruge Gender IN(M, F) for at inkludere det i Hvor klausul sammen med de andre kolonne(r) for at gøre brug af hele indekset.



  1. Hvordan kan jeg få en almindelig tekst postgres database dump på heroku?

  2. Google kortlægger kontinuerlig x-akse fra php-array

  3. hvordan man konverterer flere lag af indlejret json til sql-tabel

  4. Opret forbindelse til en ekstern MySQL-database ved hjælp af Android