常见的SQL优化方案

转载地址:https://my.oschina.net/serve/blog/852501

1。你必须选择记录条数最少的表作为基础表.
   (from 是从前往后检索的,所以要最少记录的表放在最前面)
2。采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些  
可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。同时在链接的表中能过滤的就应该先进行过滤。
  (where是从后往前检索,所以能过滤最多数据的条件应放到最后。)
3。SELECT子句中避免使用 ‘ * ‘
4。尽量多使用COMMIT
5。计算记录条数时候,第一快:count(索引列),第二快:cout(*)
6。用Where子句替换HAVING子句
7。通过内部函数提高SQL效率
8。使用表的别名(Alias)
9。用EXISTS替代IN
10。用NOT EXISTS替代NOT IN
11。用表连接替换EXISTS
12。用索引提高效率
13。避免在索引列上使用计算(此条包括在select后面  where后面等任何地方,因为在索引列上计算会导致索引失效)
14。避免在索引列上使用NOT(在索引列使用not会导致索引失效)
15。用>=替代>
16。用UNION替换OR (适用于索引列)
17。用IN来替换OR
18。避免在索引列上使用IS NULL和IS NOT NULL
19。总是使用索引的第一个列
20。用UNION-ALL 替换UNION ( 如果有可能的话)
21。ORDER BY 子句只在两种严格的条件下使用索引.
22。避免改变索引列的类型
23。需要当心的WHERE子句
24。避免使用耗费资源的操作(带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值