大家平常写SQL语句时,都会用到聚合函数什么的,语句用多了函数会不会造成性能不好?
比如:
select xx_UserId, nvl(sum(xx_bonus),0) bonus from xx_bonusledger
where xx_UserState = 'E' group by xx_UserId
这段Sql语句在查询时数据量多的话很慢。
一般哪些内置(自带的)函数少用得好?
请教各位大神。
数据量多肯定就慢啊,跟你用的系统函数关系不是很大,它既然定义了函数肯定就是拿来用的,你只有通过其他方法来优化你的查询速度
要看查询条件了,数据多了要加索引,然后看查询条件有没有用函数,比如字段time在数据库是timestamp我要查时间大于2017-12-15,where里面可能就会写left(time)>'2017-12-15',这样就不会走索引,查询速度就很慢
nvl()是干嘛用的?
oracle的语法,nvl(value1,value2);value1为空就返回value2,都为空就返回null
@.NET小码农:
试试在 xx_UserState 列上建索引,包含 xx_UserId 和 xx_bonus 这两列。
聚合函数。
我认为应该好好理解字面意思,这玩意儿活着都不容易。假设你有一个链表你设想一下怎么实现出来,能不能有空间换时间的办法,多的就不说了,或者你可以直接换个mapreduce体验一下。