嗨,我有这样的查询
SELECT (SELECT CSN FROM apps as b WHERE
a.key1=b.key1 AND a.key2 = b.key2 AND b.seq=MAX(b.seq) LIMIT 0,1) AS CSN,
a.key1
FROM apps as a GROUP BY key1, key2
现在,当我使用 EXPLAIN 时,我知道类型是范围,而附加功能是“使用索引进行分组”。在 350 000 行表上完成此计划需要 10 秒。然而有时它开始只需要 4 秒,执行计划是 type: index 和 extra: using where
所以问题是为什么会发生这种情况,一旦计划是第一次,一次是第二次,我可以以某种方式改变计划吗?