简体   繁体   中英

How to improve performance of this SELECT query JOIN

I have a query which seems to be taking a long time to run on occasion. The slowness may be unrelated but I wanted to check what could be done to make this more efficient.

The user table has about 40k rows. The code table has about 30k rows. user_id and code are unique values.

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

I have an index setup on the code.user_id field. Anything else I can do? Should I have other indexes in place here?

Output from EXPLAIN on that query:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM