Sobes.tech
Senior

Millist keerulist indeksit teeksite?

sobes.tech AI

Vastus AI-lt

Kui luua keerukindeks tingimustele WHERE A=a AND B=b ja WHERE B=b AND A=a, on oluline arvestada veergude järjekorda indeksis ja filtrimise sagedust.

Kui päringud kasutavad alati mõlemat tingimust koos, siis töötab indeks (A, B) või (B, A), kuid tõhusus sõltub sellest, milline veerg on selektiivsem (st. filtreerib rohkem andmeid).

  • Kui A on selektiivsem, on parem indeks (A, B).
  • Kui B on selektiivsem, on parem (B, A).

Samuti tuleb arvestada, et indeks (A, B) on tõhus A või A ja B filtri kasutamisel, kuid mitte ainult B puhul.

Kui päringud erinevad järjekorra poolest ja mõnikord puudutab ainult ühte välja, võib kaaluda kahe eraldi indeksi loomist või kasutamist katva indeksi.

SQL näide indeksi loomiseks:

CREATE INDEX idx_a_b ON table_name (A, B);