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 の場合、1 秒未満かかりますが、制限が 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 に答える