【发布时间】:2018-10-30 00:52:18
【问题描述】:
我需要将一个表(表 A)中的所有列连接到另外两个表(B 和 C)中的单个列。我的 SQL 可以工作,但速度很慢。问题来自加入 A 和 C。我已经研究过优化,但没有找到任何可以加快速度的方法。不幸的是,我不能改变桌子的设计。
SELECT tableA.*,
tableB.user_email,
tableC.transaction_number
FROM tableA
LEFT OUTER JOIN tableB
ON tableA.user_id=tableB.id
LEFT OUTER JOIN tableC
ON tableA.user_id=tableC.user_id
AND A.timestamp=C.timestamp
ORDER BY A.timestamp DESC;
感谢您的任何见解!
【问题讨论】:
-
EXPLAIN输出显示了什么?正在使用哪些索引? -
除了解释之外,关于查询性能的问题总是需要针对所有相关表使用 SHOW CREATE TABLE 语句
-
嗨。请阅读How to Ask、向下投票箭头鼠标悬停文本和minimal reproducible example 并采取行动。 “研究优化”是什么意思?它似乎没有涉及阅读有关 SQL 优化的基础知识,或阅读大量 SO Qs & As re sql 优化,或阅读 MySQL 手册中所有提到的“优化”。 PS 该代码无法编译。
标签: mysql sql wordpress performance left-join