oracle group by效率问题,性能优化-group by的优化
4、group by的优化
最好使用同一表中的列,
需求:每个演员所参演影片的数量-(影片表和演员表)
explain select actor.first_name,actor.last_name,count(*)
from sakila.film_actor
inner join sakila.actor using(actor_id)
group by film_actor.actor_id;
优化后的SQL:
explain select actor.first_name,actor.last_name,c.cnt
from sakila.actor inner join (
select actor_id,count(*) as cnt from sakila.film_actor group by actor_id
)as c using(actor_id);
说明:从上面的执行计划来看,这种优化后的方式没有使用临时文件和文件排序的方式了,取而代之的是使用了索引。查询效率老高了。
这个时候我们表中的数据比较大,会大量的占用IO操作,优化了sql执行的效率,节省了服务器的资源,因此我们就需要优化。
注意:
1、mysql 中using关键词的作用:也就是说要使用using,那么表a和表b必须要有相同的列。
2、在用Join进行多表联合查询时,我们通常使用On来建立两个表的关系。其实还有一个更方便的关键字,那就是Using。
3、如果两个表的关联字段名是一样的,就可以使用Using来建立关系,简洁明了。
本文同步分享在 博客“cwl_java”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
oracle group by效率问题,性能优化-group by的优化相关推荐
- 8、查询优化-关联查询优化-子查询优化-Order by 关键字优化-Group by 关键字优化-双路排序和单路排序
8.查询优化 8.1.准备数据 8.1.1.建表 CREATE TABLE `dept` (`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`deptName` VAR ...
- oracle查询语句中select from where group by having order by的解释与应用
oracle查询语句中select from where group by having order by的解释与应用 查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from- ...
- oracle 触发器性能优化,Oracle设计开发阶段的性能优化策略
我们都知道提高Oracle数据库的相关系统的实际运行效率,它是整个计算机的实际应用信息系统的高效运行的前提与保证.其实影响Oracle设计开发阶段的相关性能的因素很多,既有软件方面的因素. 也包括数据 ...
- 优化group by 语句
优化group by 语句 由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作. 当然,如果在分组的时候还使用了其他的一些 ...
- MySQL优化group by和distinct
很多场景下,MySQL使用相同的方法来优化group by和distinct的查询,使用索引是最有效的方式,当然有很多的情况下无法使用索引,可以使用临时表或者文件排序来分组.
- MySQL高级 - SQL优化 - group by 优化
优化group by 语句 由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作.当然,如果在分组的时候还使用了其他的一些聚 ...
- db2嵌套查询效率_db2性能优化
性能优化概述 DB2 的性能优化可以从三个方面分析:内存,CPU 和 I/O .DB2 性能优化是一件较为复杂的综合性的工作 , 需要对问题的根源作全方位的探索和思考.同时也需要较深厚的数据库管理经验 ...
- SQL优化 - Group By 导致的慢sql
优化前的慢SQL:3.8s EXPLAIN SELECTproduct.id AS product_id,product.CODE AS product_code,product.NAME AS pr ...
- distinct mysql性能_MySQL中distinct与group by之间的性能进行比较
最近在网上看到了一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论,测试过程在个人计算机上,可能不够全面,仅供参考. 测试过程: 准备一张测试表 CREATE TABLE `test_test` ...
最新文章
- Active Diretory 全攻略(二)--AD与域
- HTTP 错误 500.21 - Internal Server Error
- go语言和java并发_彻底搞清楚Java并发 (一) 基础
- 【转载+软件实际操作 OpenHW12参赛手记】ZedBoard-裸机下运行Hello,World【常见错误解决方案】++...
- 原型图Mockplus:怎样使用图片裁切功能
- 六西格玛dfss_六西格玛系列知识之二:六西格玛管理的基本原理
- 人心散了、项目必然要败
- LeetCode 459. 重复的子字符串(数学)
- Java 日期与时间
- 星期四星期五,越学越难
- Curl 方式实现POST提交数据
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication'
- 海淀朝阳房山二手房价格反弹明显 短期内仍将持续
- 共享自习室创业项目分析
- Android获取手机屏幕密度
- AO3400-ASEMI高效mos管AO3400
- arp命令--arping
- 2020/09-2020/11 读书摘录
- mybatis-plus 主键自增问题
- 网易云课堂Linux运维在线班英文单词笔记
热门文章
- java 马士兵 io 代码分析_学习笔记-马士兵java- (IO初步)流
- hibernate mysql 映射_Hibernate怎么不用配置mapping就使用数据库表映射实体
- 6-3 逆序数据建立链表
- linux中here文档,Linux下Bash Heredoc(Here document)的用法及基本示例
- python语言用什么来表明每行代码的层次关系_2021年尔雅通识课《切削原理与刀具》课后习题答案...
- linux 改用户组密码,Linux用户和组的操作(八) 修改用户密码 passwd
- PX4地面站QGroundControl在ubuntu下的安装
- 学习SpringMVC笔记——Intellij IDEA创建SpringMVC项目
- Eclipse Mylyn成为顶级项目
- IOS设计模式之四(备忘录模式,命令模式)