Mysql按优化顺序排列有两个索引

时间:2014-08-26 12:21:49

标签: php mysql sql optimization sql-order-by

我有下表:

名称:示例

Fields
Id: Int(10)
Quantity: Int(10)
ProductId: Int(10)
SaleTimestamp: Int(10)

Indexes
ID, Primary, Unique
ProductId, Not Unique
SaleTimestamp, Not Unique

如何优化以下查询?

SELECT Quantity FROM Example WHERE Product_id = 'x' ORDER BY SaleTimestamp DESC LIMIT 1

1 个答案:

答案 0 :(得分:3)

MySQL只使用一个索引,因此为了查询,它只会查询ProductId索引,因此ORDER BY无法使用索引。

解决方案是向两列添加索引,例如

ALTER TABLE example ADD INDEX comb( ProductId, SaleTimestamp );