最近我们在测试服务器中将MySQL从5.0升级到5.6。但是我们的实时服务器仍然是MySQL 5.0版本。
当我在MySQL 5.6中运行以下查询时,它显示141000条记录,但是当我在MySQL 5.0上运行它时,它只获取91条记录。
在MySQL 5.6(141000条记录)中检索不到3分钟,在MySQL 5.0(91条记录)中检索29分钟。
我不知道是什么问题。没有错误被抛出。
在Live服务器中,升级到5.6需要一些时间。我们很快就会升级。但是,我要解决这个问题才能上线。
SELECT * FROM(SELECT IFNULL(clmem.accountid,opmem.accountid) accountid,clmem.clmem,opmem.opmem,IFNULL(clmem.valuationdate,opmem.valuationdate) valuationdate FROM
(
select accountid, valuationdate, clmem,@rownumber:=(CASE WHEN @accid= accountid THEN @rownumber+1 ELSE 1 END) AS rownumber,@accid:=accountid AS acc from
(SELECT accountid,valuationdate,SUM(mem) clmem FROM testtempmem GROUP BY accountid,valuationdate ) A
) clmem RIGHT JOIN
(
select accountid, valuationdate, opmem,@rownumber:=(CASE WHEN @accid= accountid THEN @rownumber+1 ELSE 1 END) AS rownumber,@accid:=accountid AS acc from
(SELECT accountid,valuationdate,SUM(mem) opmem FROM testtempmem GROUP BY accountid,valuationdate ) A
) opmem ON clmem.rownumber = opmem.rownumber+1 AND clmem.accountid = opmem.accountid
WHERE clmem.accountid IS NOT NULL
UNION
SELECT t.accountid, sum(t.mem) as clmem,0 as opmem, t.valuationdate FROM testtempmem t
join (SELECT accountid,MIN(valuationdate) valuationdate FROM testtempmem GROUP BY accountid ) A
on t.accountid = a.accountid and t.valuationdate = a.valuationdate
WHERE t.valuationdate > '2015-04-01' group by t.accountid, t.valuationdate
) a ;