MySQL (5.1.66) の説明を使用すると、72 行だけをスキャンすると言いますが、「スロー ログ」ではテーブル全体がスキャンされたと報告されます (Rows_examined: 5476845)。クエリの何が問題なのかわかりません
*name*
文字列の一意のインデックスであり
*date*
、通常の int インデックスです
これが説明です
EXPLAIN SELECT *
FROM table
WHERE name LIKE 'The%Query%'
ORDER BY date DESC
LIMIT 3;
id select_type テーブル タイプ possible_keys キー key_len ref 行 エクストラ 1 SIMPLE テーブル インデックス名 日付 4 NULL 72 where の使用
スローログからの出力
# Query_time: 5.545731 Lock_time: 0.000083 Rows_sent: 1 Rows_examined: 5476845
SET timestamp=1360007079;
SELECT * FROM table WHERE name LIKE 'The%Query%' ORDER BY date DESC LIMIT 3;