MySQL索引优化分析之性能分析

一、MySQL Query Optimizer
二、MySQL常见瓶颈
三、Explain(执行计划)

1、什么是执行计划?
         2、执行计划能干什么?
         3、执行计划怎么使用?
         4、执行计划中各字段解释

--------------------------------------------------------------------------------------------

一、MySQL Query Optimizer

二、MySQL常见瓶颈

三、Explain(执行计划)

1、什么是执行计划?

使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL如何处理你的SQL语句。分析你的查询语句或是表结构的性能瓶颈。

2、执行计划能干什么?

(1)表的读取顺序
(2)数据读取操作的操作类型
(3)哪些索引可以使用
(4)哪些索引被实际使用
(5)表之间的引用
(6)每张表有多少行被优化器查询PS:(1)select_type:数据读取操作的操作类型(2)possible_keys:哪些索引可以使用(3)key:哪些索引被实际使用(4)rows:每张表有多少行被优化器查询(rows越少越好)

3、执行计划怎么使用?

     1)Explain+SQL语句
      2)执行计划包含的信息

4、执行计划中各字段解释

字段1:id:

1)select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。
2)三种情况:
第一种情况id相同:执行顺序由上而下;


第二种情况id不同:如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行


第三种情况id相同和不同,同时存在

字段2:select_type

字段3:table

显示这一行的数据是关于哪张表的

字段4:type


字段5:possible_keys

理论上用到的索引。


字段6:key

实际用到的索引。


字段7:key_len


字段8:ref


字段9:rows


字段10:extra

 extra:包含不适合在其他列中显示但十分重要的额外信息。常见的有:
(1)using filesort
(2)using temporary
(3)using index
(4)using where
(5)using join buffer
(6)impossible where
(7)select tables optimized away
(8)distinct

PS:Using temporary:使用了临时表保存中间结果,MySQL在对查询结果排序时使用临时表,常见于排序order by和分组查询group by。

1、Using  filesort

2、Using temporary

PS:group by尽量根据索引的个数和顺序来,否则会产生文件列排序和临时表(using filesort、using temorary),影响查询性能。

3、Using  index

4、using join buffer

使用了链接缓存

5、impossible where

where子句的值总是false,不能用来获取任何元组

6、impossible where

7、select tables optimized away

8、distinct

MySQL第11天:MySQL索引优化分析之性能分析相关推荐

  1. 由浅入深探究mysql索引结构原理_性能分析与优化_由浅入深探究mysql索引结构原理、性能分析与优化...

    由浅入深探究mysql索引结构原理.性能分析与优化 第一部分:基础知识第二部分:MYISAM和INNODB索引结构1, 简单介绍B-tree B+ tree树 2, MyisAM索引结构 3, Ann ...

  2. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化

    拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...

  3. 【蜂鸟E203的FPGA验证】Chap.8 Vivado综合与性能分析-Vivado性能分析

    [蜂鸟E203的FPGA验证]Chap.8 Vivado综合与性能分析-Vivado性能分析 综合后资源利用率分析 2. 综合后功耗与功耗优化 3. 综合后布局布线实现 4. 综合后静态时序分析 前言 ...

  4. mysql索引结构原理、性能分析与优化

    摘要: 第一部分:基础知识 第二部分:MYISAM和INNODB索引结构 1.简单介绍B-tree B+ tree树 2.MyisAM索引结构 3.Annode索引结构 4.MyisAM索引与Inno ...

  5. MySQL高级---索引优化分析(Explain性能分析 二)

    7.key_len:表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度.key_len字段能够帮你检查是否充分的利用上了索引.ken_len越长,说明索引使用的越充分. 如何计算: ①先看索 ...

  6. MySql高级:explain及索引优化

    一.mysql安装linux版本rpm安装 查看是否安装了mysl rpm -qa | grep -i mysql 一定要下载指定的64位,因为电脑是64位的否则会安装失败 https://www.j ...

  7. mysql解释器优化_MySQL——SQL性能分析优化利器之Explain

    系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...

  8. MySQL第13天:索引优化

    索引优化 一.索引分析 二.索引失效 三.建议 ------------------------------------------------------------------------- 一. ...

  9. mysql分页总页数算法解析_详解MySQL的limit用法和分页查询语句的性能分析

    limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table LIMIT ...

最新文章

  1. linux设备驱动学习(三)——并发控制
  2. SpringCloud-Eureka-服务注册是如何发起的
  3. 牛客题霸 [二叉树的镜像]C++题解/答案
  4. [js] 解释下深度优先遍历和广度优先遍历的区别及如何实现
  5. 数据库数据类型、常见约束、系统结构的基本知识总结(SQL、DML、DQL、DCL、DTL)
  6. 日期类型前后台传递格式控制注解@DateTimeFormat@JsonFormat@JSONField
  7. 22男人应该明白的道理
  8. swift可选隐式可选类型
  9. 【转】Roberts 算子
  10. Tensorflow车牌识别完整项目(含完整源代码及训练集)
  11. JAVA获取word书签内容_java操作word可操作书签
  12. 服务器ghost备份后无法进入系统还原,如下图,电脑开不起来了,重新ghost恢复备份的系统后启动依旧蓝屏,怎么办?...
  13. Cassandra数据库模糊查询
  14. html中 为什么在页面点击提交后reset按钮就不起作用了
  15. 以太坊区块链浏览器搭建
  16. 内存卡坏了怎么修复?内存卡恢复也不难
  17. LeetCode热门100之 无重复字符的最长子串
  18. 这家SaaS公司估值50亿美元,竟然没有一个销售人员
  19. Word第n页显示第一页的页码
  20. 如何处理表情字符入库问题

热门文章

  1. Let Me Count The Ways(Kickstart Round H 2018)
  2. (2.10)备份与还原--利用T-SQL进行备份还原
  3. TopCoder-SRM632-DIV1-300pt-PotentialArithmeticSequence-归纳推理+枚举
  4. 基于1.3.3版本tooltip的datagrid单元格tip实现
  5. 背包问题(Knapsack problem)采用动态规划求解
  6. Net平台下的分布式缓存设计
  7. C# 8的新提案:new关键字类型推断
  8. Java SE 6之GUI:让界面更加绚丽(上)
  9. Keras functional API快速入门
  10. Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置