インデックスはSELECTクエリを見て作成すると思うのですが、1つのテーブルに対して1つのSELECTクエリしか発行しないとは限らないと思います

例えば、下記のように1つのテーブルに対して複数のSELECTクエリを実行する(可能性がある)場合は、どのクエリを元にインデックスを作成するのですか?

SELECT * FROM t WHERE a = 1 

SELECT * FROM t WHERE a = 1 ORDER BY b

SELECT * FROM t WHERE c = 1 ORDER BY d
  • 案1.SELECT文の数だけ、それに応じたインデックスを作成する
    この場合は、インデックス(a)と複合インデックス(a,b)と複合インデックス(c,d)を作成する?

  • 案2.1つのSELECT文にだけ対応したインデックスを作成する
    該当テーブルに対して、最も参照回数が多いSELECT文をどうにかして特定して、それに応じたインデックスだけを作成する

  • 案3.計測した結果に基づきインデックスを作成する
    (レコード数などによって)ケースバイケースなので、面倒でも総当たりで全部試していって計測するしかない?

その他の案は何かありますか?