使用带有多个OR语句的索引

时间:2014-04-24 08:02:07

标签: mysql optimization indexing multiple-columns

我试图让这个查询使用索引。

explain SELECT SQL_NO_CACHE * FROM products WHERE (stock_disabled = 1 OR negative_stock_allowed = 1 OR stock > 0)

这就是它的回报:

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra
1   SIMPLE  p   ALL     multi_index     NULL    NULL    NULL    2890    Using where

multi_index是一个包含stock_disabled,negative_stock_allowed和库存的相同顺序。我认为由于多个OR语句,索引无效。我能在这做什么?

1 个答案:

答案 0 :(得分:0)

"使用指数foo"如果你明确想要使用索引

SELECT * FROM products USE INDEX(`multi_index`)