最近我们在测试服务器中将 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 ;