php - Mysql Order By Optimization 有两个索引

标签 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

最佳答案

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

解决办法是给两列加一个索引,例如

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

关于php - Mysql Order By Optimization 有两个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505718/

相关文章:

php - 数据库移动后 SQL 错误

MySQL : check if a "value" is in one field but is not in another one?

mysql - 连接两个表以获得结果?

SQL 查找平均得分最高的 worker 姓名

php - 选择具有相同列 a 但不同列 b 的值

php - cookies 的解剖

php - Magento:如果父类别为空,则显示来自子类别的产品

php - 使 PHP 计算器存储和显示历史记录

php - 验证数据库中的值

sql - 获取不同数据库连接的上下文详细信息的任何方法