使用MySQL(66年5月1日)解釋說,雖然「慢日誌」報道整個表進行掃描,將掃描只需72行(Rows_examined:5476845) 這怎麼可能?我想不出有什麼不對查詢MySQL的解釋VS慢登錄
*name*
是一個字符串唯一索引和 *date*
只是一個普通的INT指數
這是從慢EXPLAIN EXPLAIN SELECT * FROM table WHERE name LIKE 'The%Query%' ORDER BY date DESC LIMIT 3;
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE table index name date 4 NULL 72 Using 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;
感謝您的回覆。在'name'上使用FORCE INDEX可以使大多數查詢更快。但是我仍然需要'date'索引來確定索引是否太大而不能選擇最新的索引(例如,%很大,最後一個會使索引更快)。兩者都做一個FORCE INDEX使查詢儘可能慢沒有FORCE INDEX。 – MitziMeow