mysql sum 大量数据查询慢的加速的一种处理方法
有时候查一个月数据,要用到sum来统计,数据大的话,查询起来那一个是慢,可以考虑用联合查询
1.建视图,把一个月要查的分成三段,然后做成一个视图再查
CREATE VIEW B4SUM202302 AS SELECT * FROM (SELECT a,b FROM ( SELECT SUM(B4)AS a,COUNT(*) AS b FROM WTP.tralog WHERE Status='1' AND B39='00' AND
InstNo='00000000' AND Date BETWEEN '2023-02-01' AND '2023-02-10' AND
Id IN ('000000000005017','000000000005024','000000000005130','000000000005138',
'000000000005162','000000000005164','000000000005204','000000000005302','000000000005305',
'000000000006210','000000000006867','000000000007328' ) )AS tt UNION SELECT a,b FROM (SELECT SUM(B4)AS a,COUNT(*) AS b FROM WTP.tralog WHERE Status='1' AND B39='00' AND
InstNo='00000000' AND Date BETWEEN '2023-02-11' AND '2023-02-20' AND
Id IN ('000000000005017','000000000005024','000000000005130','000000000005138',
'000000000005162','000000000005164','000000000005204','000000000005302','000000000005305',
'000000000006210','000000000006867','000000000007328' )) AS tt2 UNION SELECT a,b FROM (SELECT SUM(B4)AS a,COUNT(*) AS b FROM WTP.tralog WHERE Status='1' AND B39='00' AND
InstNo='00000000' AND TransDate BETWEEN '2023-02-21' AND '2023-02-31' AND
Id IN ('000000000005017','000000000005024','000000000005130','000000000005138',
'000000000005162','000000000005164','000000000005204','000000000005302','000000000005305',
'000000000006210','000000000006867','000000000007328' )) AS tt3 ) AS tb3;
SELECT SUM(a) AS 金额,SUM(b)AS 消费笔数 FROM B4SUM202302
不建视图
SELECT SUM(a) AS 金额,SUM(b)AS 消费笔数 FROM (SELECT * FROM (SELECT a,b FROM ( SELECT SUM(B4)AS a,COUNT(*) AS b FROM WTP.tralog WHERE Status='1' AND B39='00' AND
InstNo='00000000' AND Date BETWEEN '2023-04-01' AND '2023-04-10' AND
Id IN ('000000000005017','000000000005024','000000000005130','000000000005138',
'000000000005162','000000000005164','000000000005204','000000000005302','000000000005305',
'000000000006210','000000000006867','000000000007328' ) )AS tt UNION SELECT a,b FROM (SELECT SUM(B4)AS a,COUNT(*) AS b FROM WTP.tralog WHERE Status='1' AND B39='00' AND
InstNo='00000000' AND Date BETWEEN '2023-04-11' AND '2023-04-20' AND
Id IN ('000000000005017','000000000005024','000000000005130','000000000005138',
'000000000005162','000000000005164','000000000005204','000000000005302','000000000005305',
'000000000006210','000000000006867','000000000007328' )) AS tt2 UNION SELECT a,b FROM (SELECT SUM(B4)AS a,COUNT(*) AS b FROM WTP.tralog WHERE Status='1' AND B39='00' AND
InstNo='00000000' AND Date BETWEEN '2023-04-21' AND '2023-04-31' AND
Id IN ('000000000005017','000000000005024','000000000005130','000000000005138',
'000000000005162','000000000005164','000000000005204','000000000005302','000000000005305',
'000000000006210','000000000006867','000000000007328' )) AS tt3 ) AS tb3) AS tbb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)