sql >> Databáze >  >> RDS >> Oracle

Index na připojení a kde

Pro tento dotaz:

Select *
from A join
     B
     on A.id1 = B.id1 and A.id2 = B.id2
where A.year = 2016 and B.year = 2016;

Navrhoval bych indexy na A(year, id1, id2) a B(id1, id2, year) .

Můžete také napsat dotaz jako:

Select *
from A join
     B
     on A.id1 = B.id1 and A.id2 = B.id2 and A.year = B.year
where A.year = 2016;

Odpověď na vaši otázku je "ano" a indexujte na B je správná věc. V této verzi na pořadí sloupců v indexu opravdu nezáleží.




  1. Kód VBA pro přidání propojené tabulky s primárním klíčem

  2. mysql utf8mb4_unicode_ci způsobit jedinečnou kolizi klíče

  3. PHP/SQL databáze dotazování osvědčených postupů a zabezpečení

  4. Jak rozdělit řetězec v pořadí pomocí řetězce odděleného čárkami a (případně) prázdných polí mezi čárkami