MySQL中SQL语句执行流程是怎么样的

技术MySQL中SQL语句执行流程是怎么样的这篇文章主要介绍MySQL中SQL语句执行流程是怎么样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!总的来说,MySQL逻辑架构可以分为server层

本文主要介绍了MySQL中SQL语句的执行过程,非常详细,具有一定的参考价值。感兴趣的朋友一定要看!

一般来说,MySQL的逻辑架构可以分为两部分:服务器层和存储引擎层。本文记录了SQL语句的执行过程,主要发生在服务器层。

服务器层主要包括MySQL数据库的大部分功能。毕竟,大部分SQL执行都是在这个层实现的。这一层可以细分为:查询缓存(简称QC),解析器也可以称为分析器、预处理器(其实也可以属于分析器)、查询优化器等等。

存储引擎层的主要工作是存储和提取数据。存储引擎的主要类型有InnoDB、MyISAM、tokuDB等。它们的区别如下:

MySQL中SQL语句执行流程是怎么样的

在InnoDB和MyISAM这两个存储引擎中,InnoDB目前应用比较广泛,而MyISAM在8.0版本之后因为不支持事务和行锁而被完全放弃。从MySQL 5.5版本开始,InnoDB成为MySQL数据库的默认存储引擎。

先下结论吧。从客户端发起一条SQL语句后,它会转到MySQL数据库,然后转到查询缓存,再转到解析器和查询优化器,执行该语句的操作就完成了,结果会从存储引擎中检索出来并返回给客户端。

一、连接验证权限。

连接MySQL主要有两种方式,一种是从服务器本地发起,通过root用户使用socket登录,另一种是从客户端发起,属于远程连接。一般来说,远程连接到数据库通常需要几个输入元素:用户名、密码、端口号和IP地址。

首先要验证的是密码是否正确,当前用户是否有权限在当前IP登录等。登录完成后,登录用户将拥有当前分配给他的权限(添加、删除、更改和检查等)。).

第二,查询缓存。

上一步验证完成后,SQL执行会来到查询缓存,查看SQL语句是否已经执行,SQL执行结果是否缓存。如果是,结果将直接取出并返回给客户。如果没有,将进行下一次查询。

不可否认,如果我们每次都能在查询缓存中得到数据,这个效率是非常高的。但是对于实际应用中,并不建议使用查询缓存。,来说,因为查询缓存只能用于静态数据,不能用于动态数据,所以缓存好的数据是很有可能的,其中有些表已经更新了,一下子缓存的数据就被清空了。然而,在8.0版本之后,这个功能被完全放弃了。在8.0版本之前,一般建议关闭查询缓存功能。

第三,解析器。

如果第二步的查询缓存没有被获取或者命中,会先进行SQL解析,包括语法和语义解析:是查询还是更新,语句写得是否正确等。将生成一个解析树并提交到下一步。

第四,预处理器(事实上,它也可以包含在解析器中)

对第三步分析的解析树进行预处理,会比第三步做出更深刻的判断,比如表/列是否存在,会把解析树处理成更平衡的树结构。

动词(verb的缩写)查询优化器

预处理之后,我来到查询优化器,在这里我决定取哪个索引,将之前的平衡树转换成执行计划,并选择一个数据库认为最适合SQL执行的执行计划。

不及物动词SQL执行

从存储引擎层检索所需的数据并返回给客户端。此时,过程结束。

以上就是《MySQL中的SQL语句执行过程如何》一文的全部内容感谢阅读!希望分享的内容对大家有帮助,有更多相关知识。欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50262.html

(0)

相关推荐

  • 如何搭建Fabric2.0环境

    技术如何搭建Fabric2.0环境小编给大家分享一下如何搭建Fabric2.0环境,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1 环境资

    攻略 2021年11月19日
  • Android开发基于ArcSoft实现人脸识别的方法是什么

    技术Android开发基于ArcSoft实现人脸识别的方法是什么本篇内容主要讲解“Android开发基于ArcSoft实现人脸识别的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编

    攻略 2021年11月1日
  • java中基于线层池Spring-quartz如何实现动态增删除改和暂停恢复定时任务

    技术java中基于线层池Spring-quartz如何实现动态增删除改和暂停恢复定时任务这篇文章主要讲解了“java中基于线层池Spring-quartz如何实现动态增删除改和暂停恢复定时任务”,文中的讲解内容简单清晰,

    攻略 2021年11月15日
  • 如何管理DMSQL域

    技术DM7 SQL域怎么管理本篇内容介绍了“DM7 SQL域怎么管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!管理S

    攻略 2021年12月21日
  • Server 2005降级到2000的正确操作步骤是什么

    技术Server 2005降级到2000的正确操作步骤是什么Server 2005降级到2000的正确操作步骤是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个

    攻略 2021年12月1日
  • 树莓派如何定时通过摄像头上传图片

    技术树莓派如何定时通过摄像头上传图片这篇文章将为大家详细讲解有关树莓派如何定时通过摄像头上传图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装抓图软件fswebcamsudo

    攻略 2021年11月20日