sql >> Databasteknik >  >> RDS >> Mysql

När ska jag använda ett sammansatt index?

Du bör använda ett sammansatt index när du använder frågor som drar nytta av det. Ett sammansatt index som ser ut så här:

index( column_A, column_B, column_C )

kommer att gynna en fråga som använder dessa fält för att gå med, filtrera och ibland välja. Det kommer också att gynna frågor som använder undergrupper av kolumner längst till vänster i den sammansatta. Så ovanstående index kommer också att tillfredsställa frågor som behöver

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

Men det kommer inte (åtminstone inte direkt, kanske kan det hjälpa delvis om det inte finns bättre index) hjälp för frågor som behöver

index( column_A, column_C )

Lägg märke till hur kolumn_B saknas.

I ditt ursprungliga exempel kommer ett sammansatt index för två dimensioner mestadels att gynna frågor som frågar på båda dimensionerna eller dimensionen längst till vänster i sig, men inte dimensionen längst till höger i sig. Om du alltid frågar efter två dimensioner, är ett sammansatt index rätt väg att gå, spelar ingen roll vilken som är först (antagligen).



  1. Hur man får ForeignCollection Field till markören i Ormlite

  2. UTL_FILE.FOPEN()-proceduren accepterar inte sökvägen för katalogen?

  3. Hur ställer jag programmatiskt in anslutningssträngen för Entity-Framework Code-First?

  4. Gå med mig för en Microsoft Access med SQL Server Academy-session