排序分组优化

where 条件和 on的判断这些过滤条件,作为优先优化的部门,是要被先考虑的!其次,如果有分组和排序,那么也要考虑grouo by 和order by。

1. 无过滤不索引

create index idx_age_deptid_name on emp (age,deptid,name);explain select * from emp where age=40 order by deptid;explain select * from emp order by age,deptid;explain select * from emp order by age,deptid limit 10;

using filesort说明进行了手工排序!原因在于没有where作为过滤条件!

结论: 无过滤,不索引。where,limt都相当于一种过滤条件,所以才能使用上索引!

2. 顺序错,必排序

①explain select * from emp where age=45 order by deptid,name;

②explain select * from emp where age=45 order by deptid,empno;

empno字段并没有建立索引,因此也无法用到索引,此字段需要排序!

③explain select * from emp where age=45 order by name,deptid;

where 两侧列的顺序可以变换,效果相同,但是order by列的顺序不能随便变换!

④explain select * from emp where deptid=45 order by age;

deptid作为过滤条件的字段,无法使用索引,因此排序没法用上索引

3. 方向反,必排序

①explain select * from emp where age=45 order by deptid desc, name desc ;

如果可以用上索引的字段都使用正序或者逆序,实际上是没有任何影响的,无非将结果集调换顺序。

②explain select * from emp where age=45 order by deptid asc, name desc ;

如果排序的字段,顺序有差异,就需要将差异的部分,进行一次倒置顺序,因此还是需要手动排序的!

list对oracle结果集排序了_MySQL之排序分组优化相关推荐

  1. mysql部门人员排序设计_MySQL数据库访问性能优化

    MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...

  2. mysql 自定义排序函数_MySQL自定义排序函数FIELD()

    MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1.str2.str3.str4比较,返回1.2.3.4,如遇 ...

  3. mysql数据排序规则_Mysql 数据库排序规则

    前言: 在新建MySQL数据库或表的时候经常会选择字符集和排序规则.数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有以下几点: (1 ...

  4. mysql 2个排序规则_MySql之排序规则问题(2)_MySQL

    今天看到这个Sql语句,之前听说过,但是并未弄懂,因此在此特意做下笔记: userName varchar(20) collate chinese_prc_ci_as null 1.首先,collat ...

  5. Oracle结果集缓存(Result Cache)--服务器、客户端、函数缓存

    Oracle结果集缓存(Result Cache)--服务器.客户端.函数缓存 在11g中,Oracle提供了结果集缓存特性.该缓存是在共享内存中存储全部的结果集,如果一个查询SQL被执行,且它对应的 ...

  6. oracle 结果集比较,Oracle 结果集之间的问题(积并交叉)

    Oracle中的MINUS和UNION用法 MINUS 指令是运用在两个 SQL 语句上.它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中.如果有 的话,那 ...

  7. oracle or条件后 排序,WHERE条件和排序

    一.条件简介 了解条件的一般形式 最普通的条件如下形式: gyj@OCM> Select * from t1 where name='gyj2'; ID NAME           SALAR ...

  8. linux下安装oracle集群,【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)...

    目录 数据库安装 继oracle集群安装之后,接下来也是最重要的数据库安装,整个数据库安装难度不大,用户以oracle用户身份登录RAC1主节点,对解压后的文件安装.主节点下安装后,其他所有结点自动安 ...

  9. Oracle RAC集群体系结构

    一. Oracle集群体系结构 Oracle RAC,全称是Oracle Real Application Cluster,即真正的应用集群,是oracle提供的一个并行集群系统,整个集群系统由Ora ...

最新文章

  1. hibernate开启二级缓存
  2. disabling directory browsing
  3. 微信小程序 获取OpenId
  4. fidder设置断点,修改请求参数等
  5. MySQL数据以全量和增量方式,同步到ES搜索引擎
  6. 牛散村期货:3月春风生 第一周非农财经简阅
  7. 小白教程系列——MultiDesk连接服务器
  8. css设置ios 默认字体,让iOS在CSS中选择系统字体Helvetica Neue或旧金山
  9. 三菱伺服自动调谐_三菱伺服mr-j3与mr-j4参数有什么差别
  10. Java深圳工作面试经历(真实经历)!!!
  11. iOS开发者,你不可错过的资源
  12. Vue项目supermall仿蘑菇街详解(一)首页开发详解
  13. Mac安装mactex清华源
  14. 利用photoshop去掉图片中文字
  15. 国际化(i18n)的js实现
  16. Tomcat在IIS下同端口运行方法(我用的tomcat8.5 iis 10网上各种坑)
  17. 在技术面前,请保持一颗谦卑的心
  18. 明细报表汇总使用说明
  19. java用户头像保存_微信授权后获取用户头像保存到服务器
  20. 更新windows补丁时一直卡在搜索更新

热门文章

  1. Activit流程部署、删除
  2. 阿里云云服务器Centos7部署JDK8+Nginx+Tomcat8+Mysql5.7
  3. [Leetcode] Combinations 组合数
  4. [置顶]使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包...
  5. $\mathbf{R}^n$中的紧集是闭有界集
  6. DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
  7. Windows Phone 7 开“.NET研究”发之:工具栏
  8. OraOps10.dll不能加载
  9. Javascript绘图
  10. hive 修改分桶数 分桶表_Hive中的分桶