当前位置:Gxlcms > 数据库问题 > sql优化

sql优化

时间:2021-07-01 10:21:17 帮助过:3人阅读

1.用exists,not exists 代替in,not in

2.where后面的表是从右到左, 如表a 10条记录,表b 100条记录,那么b就是基础表 语句是where b,a 

3.三个以上的表连接查询,那就需要使用交叉表为基础表 

3.where 子句是自下而上的过滤,那么过滤量最大的数据应该写在最后面

 例如:  
   (低效,执行时间156.3秒)  
   SELECT *  
   FROM EMP E  
   WHERE SAL > 50000  
   AND JOB = ’MANAGER’  
   AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);     
   (高效,执行时间10.6秒)  
   SELECT *  
   FROM EMP E  
   WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO)  
   AND SAL > 50000  
   AND JOB = ’MANAGER’;  

4.尽量避免使用*,如select *,

5.减少数据库访问次数

6.适当使用索性

7.where子句代替having,having先检索所有所有然后过滤

8.减少对表的查询
     

 

sql优化

标签:

人气教程排行