

mysql(ver5.6.36)で以下のようなSQLに対して複合インデックスを付与しようとしております。

[code]

    select id from test_table 
    where
    total_price < price1 + price2 + price3 - deposit_price
    
[/code]

現時点では以下のようにwhere句で使うカラムに対して複合インデックスを付与しております。

[code]

    ALTER TABLE test_table ADD INDEX test_index(total_price, price1, price2, price3, deposit_price);
    
[/code]

explainの結果、typeは「ALL」ではなく、「index」となっておりますが、rowsが100万件を超えており、ちょっと遅いです。

このようなsqlに最適なindexの貼り方はどのようなものかご教示いただけますでしょうか。


CC BY-SA 3.0
2018-01-24T04:12:19.637
41172
2018-01-24T04:18:55.880
2018-01-24T04:18:55.880
15167
15167
question
mysql
MySQLで比較演算子を使ったSQLにインデックスを付与したいです