Untuk kueri ini:
Select *
from A join
B
on A.id1 = B.id1 and A.id2 = B.id2
where A.year = 2016 and B.year = 2016;
Saya akan menyarankan indeks pada A(year, id1, id2)
dan B(id1, id2, year)
.
Anda juga dapat menulis kueri sebagai:
Select *
from A join
B
on A.id1 = B.id1 and A.id2 = B.id2 and A.year = B.year
where A.year = 2016;
Jawaban atas pertanyaan Anda adalah "ya" dan indeks pada B
adalah hal yang benar untuk dilakukan. Dalam versi ini, urutan kolom dalam indeks tidak terlalu penting.