十条关于SQL优化的小技巧~

1.在经常需要进行检索的字段上创建索引。

索引的数量需要控制,过多的索引会降低insert或update的效率。

 

2.避免在索引上使用计算。

在where语句中,如果索引列是计算或者函数的一部分,则DBMS的优化器不会使用索引。

 

3.使用预编译查询(使用参数化SQL)。

既可以避免SQL注入漏洞攻击,数据库还会对参数化SQL进行预编译,在DBSM会为这个SQL进行查询优化。

 

4.尽量将多条SQL语句压缩到一句SQL中。

每次执行SQL时,都要建立网络连接、权限校验、查询优化、发送执行结果,这个过程是非常耗时的。

 

5.用where字句替换having字句。

where是在聚合前筛选记录,having只会在检索出所有记录后才进行过滤。

 

6.使用表的别名。

在连接多个表时,使用表的别名可以减少解析时间。

 

7.用union all替换union。

当确定检索结果不会有重复的记录时,使用 union all 可以提高效率。

 

8.使用“临时表”存放中间结果。

将临时结果存放在临时表,避免多次扫描主表,减少程序执行中“共享锁”阻塞“排它锁”(更新锁),提高并发性能。

 

9.避免在where字句中使用字段null值判断。

使用null值判断会导致引擎放弃使用索引而进行全表扫描。

 

10.在select语句中,不要返回用不到的字段。

在任何情况下,都不要使用“*”,需要用到什么,就返回什么。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值