一个简单的sql性能问题,求帮助
sum(case when gmv>=0 and gmv<0.5e6 then gmv else 0 end)/sum(gmv) t7,
sum(case when gmv>=0.5e6 and gmv<0.2e8 then gmv else 0 end)/sum(gmv) t8,
sum(case when gmv>=0.2e8 and gmv<0.1e9 then gmv else 0 end)/sum(gmv) t9,
sum(case when gmv>=0.1e9 and gmv<0.5e9 then gmv else 0 end)/sum(gmv) t10,
sum(case when gmv>=0.5e9 and gmv<0.1e10 then gmv else 0 end)/sum(gmv) t11,
sum(case when gmv>=0.1e10 then gmv else 0 end)/sum(gmv) t12
这里面 sum(gmv) 计算出来是个很大的金额,我不清楚上面sql执行的过程,我担心会重复计算很多次,
那有没有必要我先查出sum(gmv),然后传给上面语句的除数那里,会有两次数据库操作, 性能方面怎么说? 性能优化
[解决办法]
不会,内部解析和编译会正确处理性能
[解决办法]
查询引擎会自动优化的,至于性能,你可以两种写法都测试一下
[解决办法]
不会.