次のSQLを実行する場合、どのインデックスの付け方が正しいか教えていただけないでしょうか。
SELECT a,b,c,d,e,f,g FROM table WHERE a >= '2019/01/01 00:00:00' AND a < '2020/01/01 00:00:00' AND b = 'abc' AND CASE WHEN c = 'xyz' THEN CASE WHEN d = 'xxx' THEN e ELSE f END ELSE g END = 'yyy'
※列はそれぞれ一意でないですが、重複するデータが多いわけでも無いとします。
- 複合インデックスで a,b,c,d を1つ作成
- 複合インデックスで a,b,c を1つ作成 d のインデックスを作成
- 複合インデックスで a,b を1つ作成 c と d のインデックスをそれぞれ作成
- a,b,c,d のインデックスをそれぞれ作成
- その他
このSQLの場合、どのインデックスが有効なのかご教授願います!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/29 09:11