【发布时间】:2014-01-27 20:03:49
【问题描述】:
我试图以良好的响应时间执行以下 sql 查询,但是当我添加 ORDER BY 语句时,查询在 5 分钟内没有返回任何内容。
SELECT *
FROM orders co
LEFT JOIN (SELECT * FROM prod_orders) AS pc
ON co.id_order = pc.id_order
LEFT JOIN (SELECT * FROM clients) AS cl
ON co.id_client = cl.id_client
LEFT JOIN (SELECT * FROM clients_address) AS ca
ON co.id_client = ca.id_client
LEFT JOIN (SELECT * FROM clienti_firme) AS cf
ON ca.id_client = cf.id_client
ORDER BY co.id_order
【问题讨论】:
-
你有什么理由使用
LEFT JOIN而不是JOIN。 -
如果没有所有内部 Select * 语句将无法工作,即将加入客户端作为 c1。我想他们对性能有很大的影响
-
@user2989408 不是特别的原因,但它正在发生同样的事情
-
你绝对需要从每个表中返回所有列吗?
-
请发布您的表的索引和查询的解释计划。没有它们,您只会得到一个猜测,这对您没有多大用处。最好得到最好的答案。
标签: mysql sql database-performance