sql >> Databasteknik >  >> RDS >> Oracle

Index på gå med och var

För den här frågan:

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

Jag skulle föreslå index på A(year, id1, id2) och B(id1, id2, year) .

Du kan också skriva frågan som:

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

Svaret på din fråga är "ja" och indexera på B är det rätta att göra. I den här versionen spelar ordningen på kolumnerna i index ingen roll.




  1. Sväva högre i molnet med MariaDB SkySQL

  2. Hur man optimerar PostgreSQL logisk replikering

  3. FATAL:kunde inte komma åt den privata nyckelfilen /etc/ssl/private/ssl-cert-snakeoil.key:Tillstånd nekad

  4. PDO med MySQL fungerar inte i e-postaktivering