die nächste SQL-Anweisung gegeben:Index auf beitreten und wo
Select *
from A join B
on A.id1=B.id1 and
A.id2=B.id2
where A.year=2016
and B.year=2016
und zu wissen, Tisch A
ist viel kleiner als Tisch B
, also muß ich die Datenbank zuerst Jahr A
Tabelle zuzugreifen, dann verbinden, dann filtert B
Tabelle nach Jahr, meine Frage ist:
macht es Sinn, einen Index über B
wie (id1,id2,year)
für eine bessere Leistung zu erstellen?
Vielen Dank!
Es ergibt keinen Sinn. Der Optimierer verschiebt die WHERE-Bedingungen an die Basistabellen und liest NUR die Zeilen mit den "richtigen" Jahren vor dem Beitritt. Haben Sie in beiden Tabellen einen Index für "Jahr"? Das würde helfen. – mathguy