iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中SQL语句执行流程是怎么样的
  • 952
分享到

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

2024-04-02 19:04:59 952人浏览 泡泡鱼
摘要

这篇文章主要介绍Mysql中sql语句执行流程是怎么样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!总的来说,mysql逻辑架构可以分为server层和存储引擎层这两个部分。这篇文

这篇文章主要介绍Mysqlsql语句执行流程是怎么样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

总的来说,mysql逻辑架构可以分为server层和存储引擎层这两个部分。这篇文章记录的是SQL语句执行流程,主要是发生在server层上面的事。

server层主要包括了MySQL数据库大多数的功能,毕竟执行SQL大部分是在这一层去实现的嘛^_^。这一层细分下来可以分为:查询缓存(query cache 有的简称QC),解析器也可叫分析器,预处理器(其实也可以归在分析器里面),查询优化器等。

存储引擎层主要的工作是存储、提取数据。当前主要的存储引擎种类有:InnoDB,MyISAM,tokuDB等,他们的区别如下:

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

在InnoDB和MyISAM这两种存储引擎中,当前使用较广的是InnoDB,MyISAM由于不支持事务,不支持行等原因在8.0版本后已经被彻底废弃了。从MySQL5.5版本开始,InnoDB成为MySQL数据库默认的存储引擎。

先说结论吧,一条SQL语句从客户端发起后,到MySQL数据库,先会进行一系列验证(比如查询/更新权限),接着到查询缓存,再到解析器,查询优化器,完成执行语句的操作从存储引擎中调取结果返回给客户端。

一、连接&&验证权限

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

连接首先验证的是密码是否正确,当前用户在当前IP是否有权限登录等,登录完成后,该登录用户会具有当前已分配给他的权限(增删改查等)。

二、查询缓存

上一步的验证完成后,SQL执行就会来到查询缓存(query cache),看是否有执行过该SQL语句缓存有该SQL执行结果,如果有,直接取出结果返回给客户端,如果没有则进行下一步的查询。

不可否认,如果每次都能在查询缓存中获取数据,这个效率是很高的。但是对于实际应用中,并不建议使用查询缓存。因为查询缓存只能针对静态数据不能针对动态数据,很可能好不容易缓存好的数据,其中有表发生了更新,一下子缓存好的数据就被清掉了。而在8.0版本后,这功能也被彻底废弃了,在8.0之前的版本一般是建议关闭查询缓存功能的。

三、解析器

在第二步的查询缓存中没能获取或者说没能命中查询缓存,就会首先进行SQL解析,包含语法,语义解析:是要进行查询还是更新操作,语句写的有没问题之类的,生成一个解析树,提交给下一步。

四、预处理器(其实也可以归在解析器里面)

将第三步中解析过的解析树进行预处理,相对于第三部来说会进行更深层次的判断,比如表/列是否存在之类的,会把解析树处理为更为平衡的平衡树结构。

五、查询优化器

预处理完成后,来到查询优化器,这里决定了比如走哪个索引等,转化前面的平衡树为执行计划,并选出一个数据库认为是最优的执行计划进行SQL的执行。

六、SQL执行

从存储引擎层调取需要的数据,返回给客户端,至此,流程结束。

以上是“MySQL中SQL语句执行流程是怎么样的”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中SQL语句执行流程是怎么样的

本文链接: https://www.lsjlt.com/news/62164.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中SQL语句执行流程是怎么样的
    这篇文章主要介绍MySQL中SQL语句执行流程是怎么样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!总的来说,MySQL逻辑架构可以分为server层和存储引擎层这两个部分。这篇文...
    99+
    2024-04-02
  • mysql的sql语句执行流程
    1、client和server建立连接,client发送sql至server(对应连接器这一过程) 2、server如果在查询缓存中发现了该sql,则直接使用查询缓存的结果返回给client,如果查询缓存中...
    99+
    2024-04-02
  • MySQL中SQL执行流程是怎么样的
    这篇文章主要介绍MySQL中SQL执行流程是怎么样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MYSQL体系结构先看一张架构图,如下:模块详解Connector:用来支持各种语言...
    99+
    2024-04-02
  • sql语句在mysql中是怎么执行的
    这篇文章主要介绍了sql语句在mysql中是怎么执行的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、mysql架构分析下面是mysql的...
    99+
    2024-04-02
  • MySql中sql语句执行过程是什么
    今天小编给大家分享一下MySql中sql语句执行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sql语句的执行过程...
    99+
    2023-07-05
  • MySQL中update语句的执行过程是怎么样的
    这篇文章主要为大家展示了“MySQL中update语句的执行过程是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中update语句的执行过程是...
    99+
    2024-04-02
  • sql语句执行顺序是怎样的
    这篇文章主要介绍了sql语句执行顺序是怎样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sql语句执行顺序:1、最先执行from tab;...
    99+
    2024-04-02
  • MySQL查询语句执行流程是什么
    这篇“MySQL查询语句执行流程是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL查询语句执行流程是什么”文章吧...
    99+
    2023-07-05
  • MySQL之Join语句执行流程是什么
    本文小编为大家详细介绍“MySQL之Join语句执行流程是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL之Join语句执行流程是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Join语句执行流...
    99+
    2023-07-05
  • MyBatis中SQL语句是怎么执行的
    MyBatis中的SQL语句执行流程大致如下: 配置文件:首先在配置文件(通常是mybatis-config.xml)中配置数据...
    99+
    2024-04-23
    MyBatis
  • mysql中怎么执行外部sql语句
    这篇文章将为大家详细讲解有关mysql中怎么执行外部sql语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 mysql执行外部sql   ...
    99+
    2024-04-02
  • 一条SQL语句执行过程时怎样的
    本篇内容主要讲解“一条SQL语句执行过程时怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“一条SQL语句执行过程时怎样的”吧!一、MySQL 体系架构- 连接池组件负责与客户端的通信,是半双...
    99+
    2023-06-29
  • SQL查询语句的执行顺序是怎样的
    这篇文章主要介绍“SQL查询语句的执行顺序是怎样的”,在日常操作中,相信很多人在SQL查询语句的执行顺序是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL查询语句的...
    99+
    2024-04-02
  • 一条SQL语句在MySQL中怎么执行的
    小编给大家分享一下一条SQL语句在MySQL中怎么执行的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一 MySQL 基础架构分...
    99+
    2024-04-02
  • 怎么监控mysql执行的sql语句
    这篇文章主要讲解了“怎么监控mysql执行的sql语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么监控mysql执行的sql语句”吧!监控执行的sql...
    99+
    2024-04-02
  • 【MySQL】MySQL中SQL执行流程
    文章目录 一、MySQL语句执行流程1.1、主要的原因有以下几点1.2、具体执行流程图如下 二、存储引擎三、MySQL的架构与内部模块四、崩溃恢复时如何判断事务是否需要提交 一、MyS...
    99+
    2023-09-16
    mysql sql 数据库
  • sql语句执行顺序优先级是怎样的
    小编给大家分享一下sql语句执行顺序优先级是怎样的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql执行顺序优先级由高到低依次...
    99+
    2024-04-02
  • MyBatis中怎么执行SQL语句
    在MyBatis中执行SQL语句可以通过Mapper接口和映射文件来实现。以下是一般步骤: 1、创建Mapper接口:在Mapper...
    99+
    2024-03-07
    MyBatis
  • db2中怎么执行sql语句
    在DB2中执行SQL语句有多种方法,以下是其中一种常用的方法: 打开DB2命令行终端或者连接到DB2数据库的客户端工具; 输入以下...
    99+
    2024-05-10
    DB2 sql
  • mysql中执行查询语句的流程分析
    这篇文章给大家分享的是有关mysql中执行查询语句的流程分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。比如,在我们从student表中查询一个id=2的信息selec ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作