【发布时间】:2014-11-26 20:08:29
【问题描述】:
我正在使用此 SQL 查询来连接两个表,即使限制为 10 也需要 10 秒。我检查了表是否已编入索引,所以我没有想法。任何帮助将不胜感激。
SELECT * FROM client_registration_request
LEFT JOIN customers ON (client_registration_request.customer_reference=customers.reference)
LEFT JOIN region_info ON ( customers.country = region_info.id )
WHERE client_registration_request.client = 23
LIMIT 10
这是解释选择的结果
client_registration_request 索引
客户索引
和 region_info 索引
【问题讨论】:
-
运行
explain select ...并在此处添加输出以及您创建的索引 -
尝试使用
explain查询并将结果发布到问题中。 -
请看我更新的答案。
-
如果它们不需要像
varchar在两个表中将它们更改为int并且如果它需要是varchar在两个表中使它们相同并在删除之前的索引后删除索引这两列的索引。 -
请注意,在没有 ORDER BY 子句的情况下,LIMIT 子句(相当)没有意义。