开门见山
今天偶然发现线上一SQL运行缓慢

最慢的时候达到了 30.8 秒。
SQL代码段:
SELECT
id,
injection_machine_id,
value_code,
`value`,
sample_time
FROM
`表`
WHERE
injection_machine_id = 26100
ORDER BY
sample_time DESC
LIMIT 1
经查,数据库中存在完全符合的索引 idx_machine_time(索引顺序为:injection_machine_id,sample_time),但使用的却是 idx_time(单列 sample_time)。
注意:以下尝试在你的机器上都可以尝试一下,对你可能是有用的噢
尝试1
于是我将该表导出(包含结构和数据)放到了我本地测试服务器,EXPLAIN 同样的 SQL,并查看了二者的索引详情后,发现二者的 Cardinality 有较大差别: