Mysql执行计划是指?有何作用?

2020-05-27 22:16:49 java常见问答 9521

Mysql作为目前java软件开发行业最受欢迎的数据库之一,想必大家都不会感到陌生吧,有兴趣的朋友们可以跟小编一起来看看Mysql执行计划哦,了解一下Mysql执行计划是用来做什么的呢?

MySQL的功能架构分是为3个部分的,它们分别是应用层、逻辑层和物理层。

应用层:主要负责与客户端进行一系列的交互,包括建立链接,记住链接状态,返回数据,最后去响应请求。

逻辑层:主要是负责查询处理,事务管理等等其他数据库功能的处理。我们先以查询为例吧,数据库接收到查询SQL之后,数据库就会立即分配一个线程对其进行相应的处理,第一步就是查询处理器会对sql查询进行优化的,然后去生成执行计划,然后再交由计划执行器来执行它。计划执行器也需要访问更底层的事务管理器,存储管理器来操作该数据,可以通过调用物理层的文件去获取到查询结构信息,最终再将结果响应给应用层。

物理层:实际物理磁盘上存储的文件,主要包括分文数据文件、日志文件。

由此可见,生成执行计划其实是执行一条sql必不可少的步骤,然而sql性能好坏也能只通过执行计划看出来的。mysql的explain关键字是可以让我们很直观的查看一条SQL的执行计划的。

执行计划,然后交由计划执行器来执行。计划执行器是需要访问更底层的事务管理器,存储管理器来操作数据的,可以通过调用物理层的文件获取到查询结构信息,最终再将结果响应给应用层。

执行计划包含的信息id包含了一组数字,其表示查询中执行select子句或操作表的顺序,id相同,执行顺序由上至下 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 id如果相同,可以认为是一组,从上往下顺序执行...

好了,以上就是本篇文章的全部内容了,还想了解更多java架构师相关内容记得关注本站消息哦。

推荐阅读;

MySQL中的事务隔离级别有几种?分别是什么概念?

mysql更新数据能回滚吗?如何实现呢?

mysql更新数据导致锁表怎么解决?