sql >> データベース >  >> RDS >> Oracle

結合時のインデックスと場所

    このクエリの場合:

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

    A(year, id1, id2) のインデックスをお勧めします および B(id1, id2, year) .

    クエリを次のように書くこともできます:

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

    あなたの質問に対する答えは「はい」で、インデックスは B にあります するのが正しいことです。このバージョンでは、インデックス内の列の順序は重要ではありません。




    1. PHPのマルチレベルforループ

    2. PostgreSQLでの日付比較

    3. SQLiteはUNIXEPOCH()関数を導入します

    4. 選択した親のツリーメニューを表示