语法大致上这样的,我写一个简单的:
SELECT
TableT2.OrserSN,TableT2.OrderNO,TableT1.SNum
FROM
(
SELECT
orderSn,
orderNo,
SUM (num) AS SNum
FROM
A
GROUP BY
orderSn,
orderNo
) TableT1
INNER JOIN TableT2 ON TableT1.orderSn = TbaleT2.OrderSn
AND TableT1.orderNo = TableT2.OrderNo
WHERE
TableT2.C2 = 123;
后面还有很多表。其实 A 表就 20 十多万条数据,但是在这个查询里面有了一个 GROUP BY 却扫表四千多万次。一个简单的查询强行用了几分钟。 试过几种优化方案,结果都不是很满意。业务不等人,那边都打开不了,最后发现其实这里他尝试在流水查询做了一个不必要的统计。也没有去深入研究,就把查询和统计分开。没有那一个子查询时间缩短到了 146 毫秒内。现在有时间了开始思考怎么用最优的方案去优化,大家有遇到类似的情况么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.