iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySql中sql语句执行过程是什么
  • 846
分享到

MySql中sql语句执行过程是什么

2023-07-05 04:07:04 846人浏览 薄情痞子
摘要

今天小编给大家分享一下MySql中sql语句执行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sql语句的执行过程

今天小编给大家分享一下MySqlsql语句执行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

sql语句的执行过程:

客户端、连接器、分析器、优化器、执行器、存储引擎几个阶段。

连接器的作用:管理链接、权限验证的处理。

分析器的作用:词法分析、语法分析。

优化器的作用:执行计划的生成、索引选择。

执行器的作用:操作引擎、返回结果。

存储引擎的作用:存储数据、提供读写接口。

另外的一个分支是,会进行查询缓存的操作,如果命中了缓存则直接返回的操作。

Mysql可以分为server层和存储引擎层两个部分:

server层:

包括链接器、查询缓存、分析器、优化器、执行器等,涵盖mysql的大多数核心服务功能,以及所有的内置函数(日期、时间、数学、和加密函数等),所有的存储引擎的功能都在这一部分实现的,比如说存储过程、触发器、视图。

存储引擎:

主要负责数据的存储和提取,其架构模式是插件式的,支持InnoDB、Memory等多个存储引擎。最常用的是InnoDB,这个主要在Mysql5.5版本开始成为了默认存储引擎。

当在执行sql查询的时候,如果不指定引擎类型、默认使用的innoDB。当然也可以指定存储引擎类型进行处理,比如说创建表的时候,可以把存储引擎修改为memory,进行表的创建出合理。当然了,不同的存储引擎的表数据存储方式也是不一样的。

连接器:

执行sql语句的时候,第一步需要进行数据库的连接处理,连接器负责客户端建立连接、获取权限、维持和管理连接。

MySql中sql语句执行过程是什么

根据命令可以看出来,主要进行几个参数的输入,IP地址、端口号、以及用户名、密码的处理。连接mysql是客户端工具,用户服务器建立连接,进行tcp握手之后,连接器需要进行身份的验证,然后输入用户名、密码。

密码不对的时候,会收到一个“Access denied for user”的错误提示,然后客户端结束执行。

用户名、密码验证通过之后,连接器就会开始进行权限表查询权限,然后进行权限的操作处理。

连接完成之后,没有进行其他的操作,这个时候连接就处于空闲状态,show processlist。

MySql中sql语句执行过程是什么

客户端如果长时间不操作的话,默认的等待时间(wait_timeout)是八个小时。

数据库建立连接是比较复杂的,建议在项目中尽量少的建立连接的操作,也就是说尽量使用长连接的处理。

在项目中经常会遇到一种情况就是数据库的长连接,很长时间不关闭的操作,这个时候会导致内存的占用太大,被系统杀掉导致的Mysql的异常。

解决方案有下面两种方案:

  • 定期断开长连接,使用一段时间之后,比如说执行一个占用内存的大查询之后,这个时候断开连接,之后要查询的话再重新连接。

  • 通过使用命令进行重新初始化连接资源,这个时候需要重连,但是会把连接恢复到初始化的状态。

查询缓存:

连接建立完毕之后,进行查询缓存的处理,执行sql语句会先到缓存中看看是不是刚刚执行了这条语句,之前执行过的语句及其结果就会以key-value对的形式直接存储在内存中的,key是查询的语句,value是查询的结果,如果查询能够直接在这个缓存中找到key,那么这个value可以直接返回给客户端。

如果语句不在查询缓存中的话,就会继续后面的执行阶段,执行完成后,执行结果会被存入查询缓存中。如果可以查询到缓存的话,就不会进行后面的复杂操作了,效率会高很多。

查询缓存的弊端:

查询缓存失败一般情况下会比较频繁,只要对一个表的进行了更新的话,这个表上面所有的缓存就会被清空。因此一般情况下查询缓存的命中率很低。一般情况下,一个系统的配置表或者静态的表才会使用到查询缓存的方式进行处理。

分析器:

分析器首先会进行词法分析,输入的是由多个字符串和空格组成的一条sql语句,mysql需要识别出来里面的字符串分别是什么,代表什么意思。

首先:mysql从输入的select这个关键词识别出来,这个是一个查询的语句,需要把from关键字后面的,字符串t识别出来表名称等等的操作。

然后进行语法分析的处理,根据词法分析,根据词法分析的结果,语句分析器就会根据语法规则判断输入的这个sql语句是否满足mysql的语法。

检查出来错误提示如下图:

MySql中sql语句执行过程是什么

一般提示错误的信息只会进行第一个错误的位置。

优化器:

经过了分析器的处理,mysql就知道了该如何进行优化器的处理了,优化器的处理逻辑是在表里面进行多个索引的时候,决定使用那个索引,或者说在一个语句有多个关联的时候,决定各个表的连接顺序的情况,如下图所示:

MySql中sql语句执行过程是什么

第一种执行的结果是处理t1.c=10是否走索引,然后可以先判断 一下逻辑的结果是否一样,如果执行的结果是一样的话,可以任意选择一种方案进行处理。

执行器:

  • 调用InNoDB引擎接口取这个表的第一行,判断值是否10,如果是10进行集中处理,否则的话就跳过。

  • 执行器将遍历过程中所有满足条件的行组成的记录集合返回给客户端。

以上就是“MySql中sql语句执行过程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySql中sql语句执行过程是什么

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

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

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

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

下载Word文档
猜你喜欢
  • MySql中sql语句执行过程是什么
    今天小编给大家分享一下MySql中sql语句执行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sql语句的执行过程...
    99+
    2023-07-05
  • MyBatis的SQL语句执行过程是什么
    这篇文章主要介绍“MyBatis的SQL语句执行过程是什么”,在日常操作中,相信很多人在MyBatis的SQL语句执行过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyBatis的SQL语句执行过程...
    99+
    2023-06-30
  • SQL查询语句执行的过程是什么
    这篇文章主要介绍“SQL查询语句执行的过程是什么”,在日常操作中,相信很多人在SQL查询语句执行的过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL查询语句执行的过程是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • SQL语句的执行过程
    1.语法校验      如果在SQL计划缓存中没有对应的执行计划,服务器首先会对用户请求的SQL语句进行语法效验,如果有语法错误,服务器会结束查询操作,并用返回相应的错误信息给...
    99+
    2022-10-18
  • MySql中sql语句执行过程详细讲解
    目录前言:sql语句的执行过程:查询缓存:分析器:优化器:执行器:总结前言: 很多人都在使用mysql数据库,但是很少有人能够说出来整个sql语句的执行过程是怎样的,如果不了解执行过程的话,就很难进行sql语句的优化处理...
    99+
    2023-02-21
    mysql的sql语句的执行流程 mysql的sql执行顺序 mysql如何执行语句
  • 深入理解:Mysql执行SQL语句过程
     开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库。数据库拿到sql语句以后。...
    99+
    2023-06-02
  • MySQL查询语句的执行过程是什么
    这篇文章主要介绍MySQL查询语句的执行过程是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先先简单的将一个查询语句背后MySQL做了什么捋一捋:客户端发送一条查询给服务器。服务器先检查查询缓存,如果命中了缓存...
    99+
    2023-06-14
  • 一条SQL语句执行过程
    目录一、MySQL 体系架构- 连接池组件- 缓存组件- 分析器- 优化器- 执行器二、写操作执行过程三、读操作执行过程四、SQL执行顺序一、MySQL 体系架构 - 连接池组件 ...
    99+
    2022-11-13
  • 一条SQL更新语句的执行过程是什么
    这篇“一条SQL更新语句的执行过程是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“一条SQL更新语句的执行过程是什么”文...
    99+
    2023-06-30
  • mysql中SQL语句的执行流程
    今天就跟大家聊聊有关mysql中SQL语句的执行流程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。       &n...
    99+
    2022-10-18
  • MySQL中SQL语句执行流程是怎么样的
    这篇文章主要介绍MySQL中SQL语句执行流程是怎么样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!总的来说,MySQL逻辑架构可以分为server层和存储引擎层这两个部分。这篇文...
    99+
    2022-10-18
  • mysql的sql语句执行流程
    1、client和server建立连接,client发送sql至server(对应连接器这一过程) 2、server如果在查询缓存中发现了该sql,则直接使用查询缓存的结果返回给client,如果查询缓存中...
    99+
    2022-10-18
  • SQL查询语句执行的过程
    目录MySQL基本架构Server 层1、连接器2、查询缓存3、分析器4、优化器5、执行器SQL语句举例: SELECT * FROM `test` WHERE `i...
    99+
    2022-11-13
  • sql语句在mysql中是怎么执行的
    这篇文章主要介绍了sql语句在mysql中是怎么执行的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、mysql架构分析下面是mysql的...
    99+
    2022-10-18
  • java中switch语句的执行过程是什么
    今天就跟大家聊聊有关java中switch语句的执行过程是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编...
    99+
    2023-06-14
  • Mysql执行一条语句的整个过程是什么
    这篇文章主要介绍Mysql执行一条语句的整个过程是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.Mysql的逻辑架构Mysql的逻辑架构如下所示,整体分为两部分,Server层和存储引擎层。与存储引擎无关的操...
    99+
    2023-06-29
  • java switch语句的执行过程是什么
    这篇文章主要介绍“java switch语句的执行过程是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java switch语句的执行过程是什么”文章能帮助大家解决问题。1、语法switch(常...
    99+
    2023-06-30
  • MySQL中update语句的执行过程是怎么样的
    这篇文章主要为大家展示了“MySQL中update语句的执行过程是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中update语句的执行过程是...
    99+
    2022-10-19
  • mysql中怎么执行外部sql语句
    这篇文章将为大家详细讲解有关mysql中怎么执行外部sql语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 mysql执行外部sql   ...
    99+
    2022-10-18
  • Mysql查询语句执行过程 - G
    Mysql查询语句执行过程   Mysql分为server层和存储引擎两部分,或许可以再加一层连接层   连接层(器) Mysql使用的是典型的C/S架构。连接器通过典型的TCP握手完成连接。 需要注的是, 如果用户名和密码都正确...
    99+
    2021-12-15
    Mysql查询语句执行过程 - G
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作