Sobes.tech
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 A szelektívebb, akkor az (A, B) index a jobb.
  • Ha a B szelektí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);