我有一個查詢似乎需要很長時間才能運行。緩慢可能是無關的,但我想檢查可以做些什麼來提高效率。如何提高此SELECT查詢的性能JOIN
用戶表有大約40k行。代碼表有大約30k行。 user_id和代碼是唯一的值。
SELECT *
FROM `user`, code
WHERE `user`.user_id = code.user_id
AND code.code = '50816ef96210415d1cad824bdb43';
我有code.user_id字段的索引設置。還有什麼我可以做的?我應該在這裏有其他索引嗎?
>> +----+-------------+-------+--------+---------------+---------+---------+----------------------+-------+-------------+
>> | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
>> +----+-------------+-------+--------+---------------+---------+---------+----------------------+-------+-------------+
>> | 1 | SIMPLE | code | ALL | user_id | NULL | NULL | NULL 35696 | Using where |
>> | 1 | SIMPLE | user | eq_ref | PRIMARY | PRIMARY | 4 | mydb.code.user_id | 1 | |
>> +----+-------------+-------+--------+---------------+---------+---------+----------------------+-------+-------------+
>> 2 rows in set (10.11 sec)
你的問題缺乏細節。某種方式表現不好? *爲什麼*你認爲你需要優化這個特定的查詢? – cdhowie
是的。增加了更多的細節。 – Quadrant6
基於'EXPLAIN'輸出,mvp建議在'code.code'上添加一個索引。 – cdhowie