簡體   English   中英

如何提高此SELECT查詢的性能

[英]How to improve performance of this SELECT query JOIN

我有一個查詢,有時要花很長時間才能運行。 速度的變化可能無關緊要,但我想檢查一下可以做些什么來提高效率。

用戶表大約有4萬行。 代碼表大約有3萬行。 user_id和代碼是唯一值。

SELECT * 
FROM `user`, code 
WHERE `user`.user_id = code.user_id 
AND code.code = '50816ef96210415d1cad824bdb43';

我在code.user_id字段上設置了索引。 我還能做什么? 我應該在這里設置其他索引嗎?

來自該查詢的EXPLAIN的輸出:

>> +----+-------------+-------+--------+---------------+---------+---------+----------------------+-------+-------------+
>> | 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)

您還需要在code.codeuser.user_id字段上添加索引,它應該開始運行

除了在代碼中添加索引之外,您可以做的另一件事是僅選擇所需的列(我不喜歡使用SELECT *)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM