此子查询是更大查询的一部分:
(SELECT MAX(id) AS max_id,
mi_id,
m_id
FROM members USE INDEX (idx_member)
WHERE
(1=1 )
GROUP BY mi_id,
m_id
)
这样做的原因是消除重复行并获取最大值。
然而,在大约100 K行中,我只有30-40行是重复的,但这是强制全表扫描。索引在m_id上。
如何在不使用MAX /聚合的情况下解决此问题?
答案 0 :(得分:0)
SELECT id, mi_id, m_id
FROM members
ORDER BY mi_id DESC, m_id DESC, id DESC;
并且
INDEX(mi_id, m_id, id)