我有一个大约有 1000 万行的 mysql 表。
对于每一行,我有一个 id
列和 date
列。 id
列不是唯一的,对于一个 id
,有多行具有不同的 date
值,通常每个 id
有 3-6 个日期。我想为他们的 date
选择具有最新 id
的行。
我的查询:
SELECT id,
date
FROM tab a
WHERE a.date = (SELECT MAX(date)
FROM tab b
WHERE a.id=b.id)
非常慢,需要几分钟才能完成。感觉这可以做得更快。这里的最佳做法是什么?
最佳答案
为什么不只是?
SELECT id,
MAX(date) date
FROM tab
GROUP BY id;
关于mysql - 子查询很慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56060431/