1
我正在嘗試使用EXPLAIN優化我的MySQL查詢。這裏是一個非常簡單地查詢的示例:使用EXPLAIN優化MySQL查詢
SELECT ID, Date, SenderID, Message FROM messages WHERE ReceiverID = '1000' ORDER BY ID DESC LIMIT 25;
當我觀看解釋它示出了:
+----+-------------+-----------+------+---------------+------------+---------+-------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+------+---------------+------------+---------+-------+------+-----------------------------+
| 1 | SIMPLE | messages | ref | ReceiverID | ReceiverID | 5 | const | 34 | Using where; Using filesort |
+----+-------------+-----------+------+---------------+------------+---------+-------+------+-----------------------------+
結果數是。我創建了一個索引ReceiverID,所以我不明白爲什麼'行'在說明是顯示?我也不知道爲什麼它使用filesort。這個查詢不是非常緩慢,但其他查詢結果較大,趨於緩慢,'行'的數字似乎幾乎是我期望它的兩倍...
它可能是非常簡單的東西,但我必須失蹤什麼?
嗨大衛,謝謝你的建議。我認爲有ID作爲主鍵會這樣做,但我想我需要在相同的索引中有ReceiveID和ID。更大的擔憂是它必須檢查的行數。似乎太多了,但我會檢查出這個鏈接。謝謝 – Carlos88