我有一个查询,有时似乎需要很长时间才能运行。缓慢可能无关紧要,但我想检查可以做些什么来提高效率。
用户表有大约 40k 行。代码表有大约 30k 行。user_id 和 code 是唯一值。
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)