0

我正在尝试从表中选择最后 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 秒或更多开始。

子选择是邪恶的。我是否可以加快这样的查询?

4

2 回答 2

3

尝试这个

    SELECT MAX(id) max, keyword FROM table 
    WHERE digit = 123 
    GROUP BY keyword
    ORDER BY max DESC LIMIT 10
于 2013-01-16T19:15:32.543 回答
1

尝试这个

SELECT MAX(id) as id, keyword FROM table
    WHERE digit = 123
    GROUP BY keyword 
    ORDER BY id DESC LIMIT 10

问候。

于 2013-01-16T19:28:55.630 回答