Senior
Aký zložený index by ste vytvorili?
sobes.tech AI
Odpoveď od AI
Pri vytváraní zloženého indexu pre podmienky WHERE A=a AND B=b a WHERE B=b AND A=a je dôležité zvážiť poradie stĺpcov v indexe a frekvenciu filtrovania.
Ak dotazy vždy používajú obe podmienky spolu, potom index na (A, B) alebo (B, A) bude fungovať, ale účinnosť závisí od toho, ktorý stĺpec je viac selektívny (t.j. filtruje viac dát).
- Ak je
Aviac selektívne, je lepší index(A, B). - Ak je
Bviac selektívne, je lepší(B, A).
Je tiež dôležité zvážiť, že index (A, B) je efektívny pre dotazy s filtrom na A alebo na A a B, ale nie len na B.
Ak dotazy majú rôzne poradie podmienok a niekedy sa týkajú len jedného poľa, môže byť vhodné vytvoriť dva samostatné indexy alebo použiť index s pokrytím (covering index).
Príklad vytvorenia indexu v SQL:
CREATE INDEX idx_a_b ON table_name (A, B);