【发布时间】:2014-08-26 20:25:30
【问题描述】:
我有下表:
名称:示例
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
【问题讨论】:
-
只需将 WHERE 子句中的 'x' 替换为整数
-
为什么慢?它应该运行得很快。使用
explain select ...查看发生了什么 -
这张表是巨大的,它拥有超过一百万条记录。当我使用 EXPLAIN 时,我可以看到 Mysql 没有为 ORDER BY 子句使用 SaleTimeStamp 索引
-
100 万行非常小,请参阅下面的回答,了解为什么只咨询一个 idx。
-
感谢 kohjah,我会尝试添加组合索引,然后通知您
标签: php mysql sql optimization sql-order-by