数据库性能优化常用规则

一,对数据库性能的优化规则:

1,减少数据访问(索引)

2,返回更少的数据(分页查询,返回需要的字段)

3,减少交互次数 (存储过程,优化业务逻辑)

4,减少服务器cpu开销(使用绑定变量,合理使用排序,减少比较操作 ,大量复杂运算在客户端处理)

5,使用更多的资源(客户端多进程并行访问, 数据库并行处理)

二, 针对sql语句

1,oracle 的解析器从右到左顺序处理from子句中的表名,因此多表情况下选择记录条数最少的表为基础表放在最右边,当3个以上的表做连结查询,选择交叉表为基础表。

2,oracle自上而下顺序解析where子句,过滤最大数量记录的条件应该写在where子句的末尾。

3,decode 函数可以避免重复扫描相同记录或重复连结相同的表。

4,可能的话用union-all 替换union

5,用truncate 替代delete

6,用大写写sql(数据库会将小写转换为大写再解析)

7,where子句替换having子句

8,优化group by (通过将不需要的记录在group by 之前去掉。)

9,对索引使用or将造成全表扫描。

10,避免不必要的order by

11,慎用函数(select语句的where条件中和选择列中慎用函数,因为查询多少条数据,函数就会执行多少次。因为每个函数都可能右多条sql语句,每个sql语句都解析,执行消耗资源多。

12,函数最好改写成子查询

13,尽量减少函数的执行次数(放在外面)

14,排序是非常消耗db服务器资源(distinct ,union,order by,group by)

15,如果右嵌套循环,数据量大的处理放在外层。

16,不要再sql中进行复杂的运算或业务逻辑。

17,不要再长字符串上建立索引。

18,where条件中使用数学表达式将无法使用索引。

19,尽量少用视图,视图设计到物理表映射加工,效率比较低。

20,count(*) 会统计值为null的行(可用), count(列名)不会。

21,对于分页sql,如果带有order by 语句,应确保排序的唯一性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值