性能调优的本质,即用最少的IO来实现计算目的。
因此为减少IO,我们需要尽量对聚合后的数据进行计算。
所以,sql性能调优可以从以下角度来思考。
1)执行顺序:
from -join -on -where- group by- having-order by
主表数据量过大,若多表关联时未使用inner join,则可以先从主表中过滤出相应数据,将其作为中间表后再使用。
2)语句原理:
如能使用union all时,不用union(union包含去重操作,需要多余IO,类似耗费资源的操作还包括distinct、minus、intersect、order by);
如
3)索引使用:
索引的使用可以避免全表查询,从而加快查询的速度,但索引被不当使用时会失效。因此,我们需要避免索引失效的情况。
通常来说,索引使用时,尽量避免在索引列上做任何操作(计算、函数、(自动或手动)类型转换),会导致索引失效进而转向全表扫描。
06-20
06-20
06-20
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交