我有这个查询:
select *
from transaction_batch
where id IN
(
select MAX(id) as id
from transaction_batch
where status_id IN (1,2)
group by status_id
);
内部查询运行非常快(不到 0.1 秒)以获取两个 ID,一个用于状态 1,一个用于状态 2,然后它根据主键进行选择,因此它被索引。解释查询说它只使用 where 搜索 135k 行,我终其一生都无法弄清楚为什么这么慢。