2012-10-11 78 views
2

我有一個非常簡單的查詢,其真正需要的是儘可能快...爲什麼MySQL在'額外'列中顯示'使用哪裏'?

查詢是:

select users.userid, users.firstname, users.lastname 
     from users_table users 
     where userid IN(1,4,6) 

用戶ID設置爲主鍵...

EXPLAIN回報如下:

id |select_type|table|type |possible_keys|key |key_len|ref |rows|Extra 
1 |SIMPLE  |users|range|PRIMARY  |PRIMARY|4  |NULL|3 |Using where 

現在,我的印象是'使用哪裏'是一件壞事?

有人可以解釋爲什麼我可能會看到這個嗎?

回答

2

在您的查詢中,它是唯一可以使用的地方。它看起來像使用主鍵,因爲IN子句與索引字段(本例中爲pk)直接比較,所以它不會比這更好!實際上,這是不可能的比這更好...

+0

我看到,出於某種原因,我在我的腦海裏,無論何時我看到'使用where'而不是'使用索引',這是一件壞事。感謝你的回答。主要是試圖學習後端技術的UI設計師/前端編碼人員,這令人非常沮喪! :) – gordyr

+0

我會盡快給你答案。 +1,因爲儘管AndreKR也正確地說明這是最好的答案。 – gordyr

2

由於this issue的原因,可以在MySQL中使用「Where where」。檢查key列以查看密鑰是否被實際使用。

相關問題