为什么在我的连接中添加“left”会使MySQL查询挂起?

时间:2010-10-06 15:25:43

标签: mysql join

此查询在几分之一秒内执行:

SELECT customers.customers_id, customers_firstname, customers_lastname, customers.customers_email_address, max(date_purchased) 
FROM customers join orders on customers.customers_id = orders.customers_id 
group by customers.customers_id;

如果我将连接更改为左连接,它似乎挂起。我尝试将其限制为10条记录,但仍需要9秒。我做错了什么?

提前致谢。

2 个答案:

答案 0 :(得分:6)

您是否在连接标准上创建了索引?

customers_Id是否已在订单表上编入索引?

您可以通过以下

查看表格中是否有任何指示
SHOW INDEXES FROM Orders;

创建索引

CREATE INDEX ix_order_customersId ON Orders (customers_id);

答案 1 :(得分:0)

为了调查这个问题,您可以尝试使用EXPLAIN SELECT .....,它会列出请求的索引/基数以及为什么花费这么多时间。