{转}SQL优化34条建议2

(32) 使用索引
a. 如果检索数据量超过 30% 的表中记录数 . 使用索引将没有显著的效率提高 .
b. 在特定情况下 使用索引也许会比全表扫描慢 但这是同一个数量级上的区别 而通常情况下 , 使用索引比全表扫描要块几倍乃至几千倍 !
(33)避免使用耗费资源的操作 :
带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BYSQL 语句会启动 SQL 引擎
执行耗费资源的排序(SORT) 功 能 . DISTINCT 需要一次排序操作 而其他的至少需要执行两次排序 通常 带有 UNION, MINUS , INTERSECTSQL 语句都可以用其他方式重写 如果你的数据库的 SORT_AREA_SIZE 调配得好 使用 UNION , MINUS, INTERSECT 也是可以考虑的 毕竟它们的可读性很强
(34)优化 GROUP BY:
提高GROUP BY  语句的效率 可以通过将不需要的记录在 GROUP BY  之前过滤掉 . 下面两个 查询返回相同结果但第二个明显就快了许多 .
低效:
SELECT JOB , AVG(SAL)
FROM EMP
GROUP by JOB
HAVING JOB =  PRESIDENT'
OR JOB =  MANAGER'
高效:
SELECT JOB , AVG(SAL)
FROM EMP
WHERE JOB =  PRESIDENT'
OR JOB =  MANAGER'
GROUP by JOB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值