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的优化相关推荐

  1. 8、查询优化-关联查询优化-子查询优化-Order by 关键字优化-Group by 关键字优化-双路排序和单路排序

    8.查询优化 8.1.准备数据 8.1.1.建表 CREATE TABLE `dept` (`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`deptName` VAR ...

  2. oracle查询语句中select from where group by having order by的解释与应用

    oracle查询语句中select from where group by having order by的解释与应用 查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from- ...

  3. oracle 触发器性能优化,Oracle设计开发阶段的性能优化策略

    我们都知道提高Oracle数据库的相关系统的实际运行效率,它是整个计算机的实际应用信息系统的高效运行的前提与保证.其实影响Oracle设计开发阶段的相关性能的因素很多,既有软件方面的因素. 也包括数据 ...

  4. 优化group by 语句

    优化group by 语句 由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作. 当然,如果在分组的时候还使用了其他的一些 ...

  5. MySQL优化group by和distinct

    很多场景下,MySQL使用相同的方法来优化group by和distinct的查询,使用索引是最有效的方式,当然有很多的情况下无法使用索引,可以使用临时表或者文件排序来分组.

  6. MySQL高级 - SQL优化 - group by 优化

    优化group by 语句 由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作.当然,如果在分组的时候还使用了其他的一些聚 ...

  7. db2嵌套查询效率_db2性能优化

    性能优化概述 DB2 的性能优化可以从三个方面分析:内存,CPU 和 I/O .DB2 性能优化是一件较为复杂的综合性的工作 , 需要对问题的根源作全方位的探索和思考.同时也需要较深厚的数据库管理经验 ...

  8. SQL优化 - Group By 导致的慢sql

    优化前的慢SQL:3.8s EXPLAIN SELECTproduct.id AS product_id,product.CODE AS product_code,product.NAME AS pr ...

  9. distinct mysql性能_MySQL中distinct与group by之间的性能进行比较

    最近在网上看到了一些测试,感觉不是很准确,今天亲自测试了一番.得出了结论,测试过程在个人计算机上,可能不够全面,仅供参考. 测试过程: 准备一张测试表 CREATE TABLE `test_test` ...

最新文章

  1. Active Diretory 全攻略(二)--AD与域
  2. HTTP 错误 500.21 - Internal Server Error
  3. go语言和java并发_彻底搞清楚Java并发 (一) 基础
  4. 【转载+软件实际操作 OpenHW12参赛手记】ZedBoard-裸机下运行Hello,World【常见错误解决方案】++...
  5. 原型图Mockplus:怎样使用图片裁切功能
  6. 六西格玛dfss_六西格玛系列知识之二:六西格玛管理的基本原理
  7. 人心散了、项目必然要败
  8. LeetCode 459. 重复的子字符串(数学)
  9. Java 日期与时间
  10. 星期四星期五,越学越难
  11. Curl 方式实现POST提交数据
  12. 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication'
  13. 海淀朝阳房山二手房价格反弹明显 短期内仍将持续
  14. 共享自习室创业项目分析
  15. Android获取手机屏幕密度
  16. AO3400-ASEMI高效mos管AO3400
  17. arp命令--arping
  18. 2020/09-2020/11 读书摘录
  19. mybatis-plus 主键自增问题
  20. 网易云课堂Linux运维在线班英文单词笔记

热门文章

  1. java 马士兵 io 代码分析_学习笔记-马士兵java- (IO初步)流
  2. hibernate mysql 映射_Hibernate怎么不用配置mapping就使用数据库表映射实体
  3. 6-3 逆序数据建立链表
  4. linux中here文档,Linux下Bash Heredoc(Here document)的用法及基本示例
  5. python语言用什么来表明每行代码的层次关系_2021年尔雅通识课《切削原理与刀具》课后习题答案...
  6. linux 改用户组密码,Linux用户和组的操作(八) 修改用户密码 passwd
  7. PX4地面站QGroundControl在ubuntu下的安装
  8. 学习SpringMVC笔记——Intellij IDEA创建SpringMVC项目
  9. Eclipse Mylyn成为顶级项目
  10. IOS设计模式之四(备忘录模式,命令模式)