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

Hvornår skal jeg bruge et sammensat indeks?

Du bør bruge et sammensat indeks, når du bruger forespørgsler, der har gavn af det. Et sammensat indeks, der ser sådan ud:

index( column_A, column_B, column_C )

vil gavne en forespørgsel, der bruger disse felter til at forbinde, filtrere og nogle gange vælge. Det vil også gavne forespørgsler, der bruger undersæt af kolonner længst til venstre i det sammensatte. Så ovenstående indeks vil også tilfredsstille forespørgsler, der har brug for

index( column_A, column_B, column_C )
index( column_A, column_B )
index( column_A )

Men det vil ikke (i hvert fald ikke direkte, måske kan det hjælpe delvist, hvis der ikke er bedre indeks) hjælp til forespørgsler, der har brug for

index( column_A, column_C )

Bemærk, hvordan kolonne_B mangler.

I dit oprindelige eksempel vil et sammensat indeks for to dimensioner for det meste gavne forespørgsler, der forespørger på begge dimensioner eller dimensionen længst til venstre i sig selv, men ikke dimensionen længst til højre i sig selv. Hvis du altid forespørger på to dimensioner, er et sammensat indeks vejen at gå, det er lige meget, hvad der er først (sandsynligvis).



  1. Sådan får du datoen fra en Datetime-kolonne i MySQL

  2. Forbedret støtte til genopbygning af parallelle statistikker

  3. Oracle regulære udtryk. Farlig rækkevidde

  4. Påvirker Sql JOIN-ordren ydeevnen?