Senior
Milyen összetett indexet készítenél?
sobes.tech MI
Válasz az MI-től
Az összetett index létrehozásakor a WHERE A=a AND B=b és WHERE B=b AND A=a feltételekhez fontos figyelembe venni az index oszlopainak sorrendjét és a szűrés gyakoriságát.
Ha a lekérdezések mindig mindkét feltételt együtt használják, akkor az (A, B) vagy (B, A) index működni fog, de a hatékonyság attól függ, hogy melyik oszlop szelektívebb (azaz, több adatot szűr).
- Ha az
Aszelektívebb, akkor az(A, B)index a jobb. - Ha a
Bszelektívebb, akkor a(B, A)index a jobb.
Fontos megjegyezni, hogy az (A, B) index hatékonyan használható az A vagy az A és B szerinti szűréssel, de nem csak B esetén.
Ha a lekérdezések sorrendje változik, és néha csak egy mezőre vonatkoznak, akkor érdemes lehet két külön indexet létrehozni vagy egy fedő indexet (covering index) alkalmazni.
SQL példája index létrehozására:
CREATE INDEX idx_a_b ON table_name (A, B);