type : - const 常数查找,一般为主键或者唯一索引查找
 - eq_reg 范围查找,主键或者唯一索引的范围查找
 - ref 一般用于连接查询,一个表基于某个索引的查找
 - range 基于索引的范围查找
 - index 基于索引的扫描
 - all  表扫描
key_len : 索引的长度,mysql 每次读取以页为单位,如果一页中存储的索引数量越大,查询效率越高


count() 和 max()的优化







子查询到优化

连接查询,如果是一对多关系,将出现多个重复结果,用 distinct 去重

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

优化后:

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)
在子查询中用过滤条件,而不是连接之后,再用过滤

Limit 优化

优化前:

explain select film_id,description from sakila.film order by title limit 50,5

优化后:

explain select film_id,description from sakila.film order by film_id limit 50,5


15.explain相关推荐

  1. 9. MySQL EXPLAIN解析

    专栏地址: MySQL系列文章专栏 文章目录 1. EXPLAIN简介 2. EXPLAIN输出格式 2.1 EXPLAIN 包含的列 2.2 id列 2.3 select_type SIMPlE P ...

  2. Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦

    Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦 作者 digoal 日期 2016-10-11 标签 Greenplum , PostgreSQL , ...

  3. MyBatis】MyBatis一级缓存和二级缓存

    转载自  MyBatis]MyBatis一级缓存和二级缓存 MyBatis自带的缓存有一级缓存和二级缓存 一级缓存 Mybatis的一级缓存是指Session缓存.一级缓存的作用域默认是一个SqlSe ...

  4. mysql索引优化实际例子_MySQL索引优化的实际案例分析

    Order by desc/asc limit M是我在mysql sql优化中经常遇到的一种场景,其优化原理也非常的简单,就是利用索引的有序性,优化器沿着索引的顺序扫描,在扫描到符合条件的M行数据后 ...

  5. mysql limit asc_MySql sql优化之order by desc/asc limit M-阿里云开发者社区

    Order by desc/asc limit M是我在mysql sql优化中经常遇到的一种场景,其优化原理也非常的简单,就是利用索引的有序性,优化器沿着索引的顺序扫描,在扫描到符合条件的M行数据后 ...

  6. Silverlight——施工计划日报表(一)

    前一段时间,客户需要一个施工计划报表,要求能够直观的看到各个计划的实施时间,而且能够修改.琢磨着,决定用Silverlight搞定好了.效果如下: 用户可以通过右键菜单的[完成]选项来标记完成,左键选 ...

  7. 微信V3支付 订单查询 退款查询

    本编在对接V3支付的时候连连撞头,希望后来人能少走点弯路,如果有bug请海涵啊,希望各位大佬也能给我点意见,话不多说上代码: service层 package com.tiyaa.mall.pay.s ...

  8. 【操作系统概念-作业8】Main Memory

    #! https://zhuanlan.zhihu.com/p/424671940 [操作系统概念-作业8]Main Memory Operating System Concepts Exercise ...

  9. 2018百度秋招一面/二面/三面

    1.int和integer所占字节,int .new integer.integer区别,大于128的时候有什么区别. int.integer所占字节为4字节. 1. int 和Integer在进行比 ...

  10. MyBatis一级缓存和二级缓存

    MyBatis自带的缓存有一级缓存和二级缓存 一级缓存 Mybatis的一级缓存是指Session缓存.一级缓存的作用域默认是一个SqlSession.Mybatis默认开启一级缓存. 也就是在同一个 ...

最新文章

  1. zabbix 4.0.3 use docker-compose deploy
  2. 第十五届全国大学生智能车全国总决赛获奖信息-华南赛区
  3. 5/5 MySQL入门总结:其它操作
  4. 棋盘里的数学(qduoj 记忆化搜索)
  5. OPENCV回调函数
  6. android 远程桌面连接闪退,远程桌面一点连接就闪退,不能弹出输入账号密码窗口...
  7. 如何快速学习一门技术或进入一个岗位
  8. Python 项目实践二(生成数据)第二篇
  9. VS Code远程链接报错Could not establish connection to “hz-t2.matpool.com”
  10. 【论文写作】毕业论文写作的基本要求讲解
  11. 读书笔记----10日摘抄整理(11)
  12. 面向对象程序设计_Task5_Calculator1.5.0
  13. 分享几个搜图,图标,图片网站
  14. XML与XSD两兄弟
  15. 赤诚的火焰--致时代里永远不变的规矩
  16. TopoJSON格式规范说明
  17. 2017-2018-1 现代偏微分方程导论
  18. 如何解决更新windows10后兼容性助手显示Vmware不能在Windows上运行的问题?
  19. 【代码审计-JAVA】基于javaweb框架开发的
  20. 神州数码交换机CS6200命令学习(三)

热门文章

  1. thinkphp遗留问题
  2. 2010-4-22 星期四 晴转多云
  3. 在GridView分页过程中,CheckBox的选中状态不丢失
  4. R语言ETL工程系列:读写(read/write)
  5. 47页PPT,海量信息!用户画像架构、指标、标签、ETL、性能及案例应用一站通!(附PPT下载及视频 )...
  6. R语言之数据分析高级方法「时间序列」
  7. java 新增的方法外部调用提示不存在_Java面试简答题(一)
  8. python 闭包,装饰器,random,os,sys,shutil,shelve,ConfigParser,hashlib模块
  9. JavaScript Window Navigator
  10. Invalid regular expression: unmatched parentheses