《小常识-20》sql调优简单理解

1.可以通过调整 WHERE 子句中的连接顺序数据库管理系统采用自下而上的顺序解析 WHERE 子句,根据这个原理,表连接最好写在其他 WHERE 条件之前,那些可以过滤掉最大数量记录。
下面的 SQL 语句性能较差:

SELECT *
FROM Person
WHERE Salary > 50000
AND Position= ‘MANAGER’
AND 25 < (SELECT COUNT(*) FROM T_Manager
WHERE ManagerId=2)
;

把子查询的条件放到最前面,性能比较好:

SELECT *
FROM _Person
WHERE
25 < (SELECT COUNT(*) FROM Manager
WHERE FManagerId=2)
AND Salary > 50000
AND Position= ‘MANAGER’

;

2.用 Where 代替 HAVING
减少使用 HAVING,因为 HAVING 只会在检索出所有记录之后才对结果集
进行过滤。而通过 WHERE 子句限制记录的数目,那就能减少这方面的开销。
HAVING 一般用于聚合函数的过滤,除此而外,应该将条件写在 WHERE 子
句中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值