我正在尝试从表中选择N个最后一个唯一关键字,它具有以下结构:
id | keyword | digit
1 | TEXT1 | 123
2 | TEXT2 | 125
...
3 | TEXT3 | 123
查询:
SELECT id, keyword FROM table
WHERE digit = 123
AND id IN
(SELECT MAX(id) FROM table GROUP by keyword)
ORDER BY id DESC LIMIT 10
当限制为10 - 20时,它需要不到一秒,但如果限制从50开始 - 查询时间从3秒开始。
子选择是邪恶的。我是否可以加快这样的查询?
答案 0 :(得分:3)
试试这个
SELECT MAX(id) max, keyword FROM table
WHERE digit = 123
GROUP BY keyword
ORDER BY max DESC LIMIT 10
答案 1 :(得分:1)
试试这个
SELECT MAX(id) as id, keyword FROM table
WHERE digit = 123
GROUP BY keyword
ORDER BY id DESC LIMIT 10
问候。