文档章节

MySQL执行计划详解

o
 osc_fmg49rzg
发布于 2019/03/20 16:01
字数 537
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

---恢复内容开始---

摘要:

  在实际项目开发中,由于我们不知道实际查询的时候数据库发生什么了什么事情,数据库软件是如何扫描表、怎么使用索引的,因此,我们能感知到的就只有sql语句运行的时间,在数据规模不大时,查询是瞬间的,因为在写sql语句的时候就很少考虑到性能问题。但是当数据规模大时,如千万,亿的时候,我们运行同样的sql语句时就会发现迟迟没有结果,这个时候才知道数据规模已经限制了我们查询的速度。所以,查询优化和索引也就显得很重要了。

问题:

  当我们在查询前能否预先估计查询究竟要涉及多少行,使用那些索引、运行时间等,答案是可以的,MySQL提供相应的功能和语法来实现该功能。Server会比较所有可能方法所耗费的资源. 最终SQL语句被物理性执行的方法被称做执行计划(数据库服务器在执行sql语句之前会制定几套执行计划!看那个机会消耗的系统资源少,就是用那套计划!)

分析:

  MySQL提供了explain语法用来进行查询分析,在SQL语句前加一个"explain"即可。比如我们要分析如下SQL语句:

运行上面SQL语句会看到,下面的表头信息:

explain列的解释

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

type  显示连接使用的何种类型,从最好到最差的连接类型是const、eq_reg、range、indexhe和ALL

说明:不同连接类型的解释(按照效率高低的顺序排序)

system:表示只有一行,system表。这是const连接类型的特殊情况。

const:表中的一个记录的最大值能够匹配这个查询(索引可以是主键或唯一索引)。因为只有一行,这个值实际就是常数,因为

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
mysql定时任务/mysql作业

转自:https://www.jb51.net/article/138569.htm 详细参考:https://www.cnblogs.com/qlqwjy/p/7954175.html(事件&任务调度) 详细参数:https://www.cnblogs.com/langtianya/p/5445528.ht......

osc_d5c6tuv9
2019/06/11
12
0
MySQL中的执行计划

什么是MySQL执行计划 就是mysql自己生成的对于SQL语句效果的说明效果 2. 执行计划原理图 3. 执行计划的作用 1) 执行计划的查看, 可以让我们对SQL语句的性能有详细的了解 2) 执行计划的查看,...

osc_ky6f5kf1
2019/08/15
2
0
mysql中SQL执行过程详解

mysql执行一个查询的过程,到底做了些什么: 客户端发送一条查询给服务器; 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器段进行SQL解析...

echojson
2019/04/20
57
0
Mysql 系统学习梳理_【All】

0、Linux学习---CentOS 7编译安装MySQL 8.0 1、Mysql学习---SQL语言的四大分类 2、Mysql学习---基础操作学习 3、Mysql学习---基础操作学习2 4、Mysql学习---视图/触发器/存储过程/函数/执行计...

osc_dgr0xrq4
2018/07/29
14
0
MySQL 执行计划详解

MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 MySQL InnoDB 锁 MySQL InnoDB MVCC MySQL Inno...

osc_88a08cel
04/16
2
0

没有更多内容

加载失败,请刷新页面

加载更多

django框架效率

1. django ORM模式提供食物处理类:transaction.Django默认的事务处理方式时改动就提交,每执行一次就立即提交,这就会花费大量的时间用于IO。Django也支持所有工作都完成后才提交事务这种方...

osc_2clpynvs
25分钟前
6
0
Qt编写安防视频监控系统34-onvif事件订阅

一、前言 事件订阅是近期增加的功能,主要是因为遇到越来越多的一个应用场景,能够接收摄像机的报警事件,比如几乎所有的摄像机后面会增加报警输入输出接口,如果用户外接了报警输入,则当触...

飞扬青云
26分钟前
13
0
springboot应用docker部署调用phantomjs出现permission denied修复方法

1. 最近项目中需要对网页生成图片 通过调研发现 phantomjs 转换保真度最好,兼容性不错。因此选择了它。但是在打包作镜像时发现调用 phantomjs 不成功,进入镜像直接使用命令 phantomjs -v 查...

osc_5emtajt2
26分钟前
13
0
Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)

T00ls 每日签到是可以获取 TuBi 的,由于常常忘记签到,导致损失了很多 TuBi 。于是在 T00ls 论坛搜索了一下,发现有不少大佬都写了自己的签到脚本,签到功能实现、定时任务执行以及签到提醒...

osc_w9jimlm8
27分钟前
12
0
springboot~集成elasticsearch的jest

jest是一批操作es的http api接口,你可以像使用普法方法一下操作es,在springboot2.3.0之前,JestClient是支持自动注入的,而在2.3.0之后,你必须为JestClient写一个组件类,通过注入组件类来...

osc_qo2uprmb
29分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部