代码优化之SQL优化

一、为什么要做sql优化?

      在数据量较大,好的sql语句和合理的表结构,能够呈倍的提高执行效率,从而提高程序的可用性和用户体验性。

二、优化方向

       1.sql语句优化(尽量避免造成全表扫描)

          (1)查询时尽量不要用* 号

          (2)减少子查询和使用in,使用exits

                   例如 select id,name,age from student where id in (select id from javaCouse)

                    select id,name,age from student where id exits (select id from javaCouse)

          (3)尽量不要使用 or(or不走索引),用union进行结果集的合并,加入两个结果集不存在重复数据,那么最好用unionAll

          (4)那些可以过滤掉大量数据的条件必须记录在where子句的末尾

          (5)关联查询时用数据量较小的表做基表和通过where条件进行筛选以减小笛卡尔积

         (6)禁止在WHERE条件的上使用函数或者计算

         (7)禁止使用模糊查询 like '%%',如果需要用到,则尽量使用'%'

         (8)对null 的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。

       2.表结构设计

          (1)尽量减少不必要的关联查询,合理的增加“冗余”字段

          (2)合理的建立主外键,连接查询时用主外键进行连接

          (3)建立数据表时,能用int型的数据的字段尽量用int 型,因为int型的数据作为条件筛选时比字符串的类型快

          (4)在常用字段合理建立索引(折半查找)

          (5)尽量让字段名为not null ,给字段增加默认值,null值需要更多的存储空间,无论是表还是索引中每行中的null的列都需要额外的空间来标识

          (6) 不要在多字段的表中使用TEXT、BLOB类型,用主外键来对应,避免影响其它字段索引效率

      3.建立存储过程

        (1)存储过程只在创建时进行编译,sql语句则每次执行都需要编译。能提高数据库执行速度。

        (2)复用性高。

   (3)安全性高,可指定存储过程的使用权。

 ......

转载于:https://www.cnblogs.com/pamne/p/11393377.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值