九、提高group by语句的效率

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

1、反例

先分组,再过滤

1. select job, avg(salary) from employee 
2. group by job
3. having job ='develop' or job = 'test';

2、正例

先过滤,后分组

1. select job,avg(salary) from employee 
2. where job ='develop' or job = 'test'
3. group by job;

3、理由

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

目录
相关文章
|
1月前
|
缓存 算法 关系型数据库
写出好的Join语句,前提你得懂这些!
写出好的Join语句,前提你得懂这些!
|
4月前
|
SQL 存储 大数据
SQL中DISTINCT关键字的使用与性能影响分析
SQL中DISTINCT关键字的使用与性能影响分析
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
55 0
|
6月前
|
SQL 关系型数据库 MySQL
SELECT * 效率低
SELECT * 效率低
57 0
SELECT * 效率低
|
6月前
|
SQL 数据库
SQL HAVING 子句详解:在 GROUP BY 中更灵活的条件筛选
HAVING子句被添加到SQL中,因为WHERE关键字不能与聚合函数一起使用。
228 0
【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,还是那就话,别死记网上结论、在使用内外关联时,特别是简写方式时记住关联条件不要乱放!【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
|
SQL 存储 Oracle
table()函数的使用,提高查询效率
table()函数的使用,提高查询效率
237 0
table()函数的使用,提高查询效率
|
SQL 网络协议 关系型数据库
为什么大家都说 SELECT * 效率低?
无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。
108 0
为什么大家都说 SELECT * 效率低?
|
SQL 缓存 算法
写出好的Join语句,前提你得懂这些
因为驱动结果集越大,意味着需要循环的次数越多,也就是说在被驱动结果集上面所 需要执行的查询检索次数会越多。比如,当两个表(表 A 和 表 B) Join 的时候,如果表 A 通过 WHERE 条件过滤后有 10 条记录,而表 B 有 20 条记录。如果我们选择表 A 作为驱动表,也就是被驱动表的结果集为 20,那么我们通过 Join 条件对被驱动表(表 B)的比较过滤就会有 10 次。反之,如果我们选择表 B 作为驱动表,则需要有 20 次对表 A 的比较过滤。小贴士1:驱动表的定义:当进行多表连接查询时,1.指定了联接条件时,满足查询条件的记录行数少的表为驱动表,2.未指定联接条件时,行数少