提高group by语句的效率

简介: 提高group by语句的效率

1、反例

先分组,再过滤

select job, avg(salary) from employee

group by job

having job ='develop' or job = 'test';

2、正例

先过滤,后分组

select job,avg(salary) from employee

where job ='develop' or job = 'test'

group by job;

3、理由

可以在执行到该语句前,把不需要的记录过滤掉

 

相关文章
九、提高group by语句的效率
九、提高group by语句的效率
354 0
|
SQL 关系型数据库 MySQL
|
关系型数据库 MySQL 索引
GROUP BY 的实现与优化
由于GROUP BY实际上也同样需要进行排序操作,而且与ORDER BY相比,GROUP BY主要只是多了排序之后的分组操作。当然,如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数的计算。
1334 0
|
SQL 存储 Oracle
table()函数的使用,提高查询效率
table()函数的使用,提高查询效率
274 0
table()函数的使用,提高查询效率
|
9月前
|
SQL 关系型数据库 MySQL
SELECT * 效率低
SELECT * 效率低
71 0
SELECT * 效率低
|
SQL 网络协议 关系型数据库
为什么大家都说 SELECT * 效率低?
无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。
123 0
为什么大家都说 SELECT * 效率低?
|
SQL 数据库 索引
|
SQL 缓存 算法
写出好的Join语句,前提你得懂这些
因为驱动结果集越大,意味着需要循环的次数越多,也就是说在被驱动结果集上面所 需要执行的查询检索次数会越多。比如,当两个表(表 A 和 表 B) Join 的时候,如果表 A 通过 WHERE 条件过滤后有 10 条记录,而表 B 有 20 条记录。如果我们选择表 A 作为驱动表,也就是被驱动表的结果集为 20,那么我们通过 Join 条件对被驱动表(表 B)的比较过滤就会有 10 次。反之,如果我们选择表 B 作为驱动表,则需要有 20 次对表 A 的比较过滤。小贴士1:驱动表的定义:当进行多表连接查询时,1.指定了联接条件时,满足查询条件的记录行数少的表为驱动表,2.未指定联接条件时,行数少
|
4月前
|
缓存 算法 关系型数据库
写出好的Join语句,前提你得懂这些!
写出好的Join语句,前提你得懂这些!
105 0

热门文章

最新文章