首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Sql语句Mysql执行流程

查询缓存: 执行查询语句时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。    ...优化器: 按照 MySQL 认为最优方案去执行。   执行器: 执行语句,然后从存储引擎返回数据。   ...2) 查询缓存(MySQL 8.0 版本后移除)             查询缓存主要用来缓存我们所执行 SELECT 语句以及该语句结果集。             ...连接建立后,执行查询语句时候,会先查询缓存,MySQL 会先校验这个 sql 是否执行过,以 Key-Value 形式缓存在内存,Key 是查询预计,Value 是结果集。...MySQL 查询不建议使用缓存,因为查询缓存失效在实际业务场景可能会非常频繁,假如你对一个表更新的话,这个表上所有的查询缓存都会被清空。

4.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

select语句执行流程MySql

学习了极客时间MySql课程,做个总结 以一条select语句为例:select * from T where ID=4 ,梳理下执行流程 一条sql语句在执行过程需要经过连接器、分析器、优化器、...当你输入了用户名和密码后,连接器会在权限表查询你拥有的权限,之后本次连接你对表能否操作查询删除修改等,都依赖于此时读取到权限。...查询缓存 在经过连接器之后,会执行第二步查询缓存,在MySql拿到查询后,会先到查询缓存查看是否执行过这条语句,之前执行结果会以key-value对形式存在,如果不在查询缓存,会继续执行后面的极端...在MySql8.0之后去掉了查询缓存功能。...分析器 分析器会先做“词法分析”,识别出sql里字符串分别是什么,读出“select”关键字对出这是一条查询语句,把字符串T识别成“表T” “语法分析”,根据词法分析结果,判断该条sql是否满足MySql

7410

MySQL流程控制语句

目录: 选择结构 if函数 if结构 case结构 循环结构 while loop repeat 流程控制语句大致分为选择结构与循环结构;...if结构 功能:实现多路选择 注意:只能用在begin...end结构体 语法: if 逻辑表达式 then 语句1; elseif 逻辑表达式2 then 语句2; ... else 语句n; end...while; 注意:在do...end while写循环体; 代码实例: 创建存储过程,输入一个值,返回1到该值和; delimiter $ create procedure pro_sum...call pro_sum(2,@result); select @result; loop 语法: 循环名称:loop; if 逻辑表达式 then leave 循环名称; #跳出当前指定循环...,类似于Javabreak; end if; end loop; 代码实例: #创建存储过程 DELIMITER // CREATE PROCEDURE pro_sum_loop(IN input

35720

Mysql查询语句执行流程

官方图 ---- ? 自行画图 ---- ? 第一步:   连接器 首先我们要连接上这个数据库,连接器负责建立连接,判断认证是否通过等。...第二部:   查询缓存 mysql拿到请求后首先判断请求查询语句是否有缓存,是否命中缓存,但是不推荐使用mysql缓存,官方也不推荐,因为只要有一条数据更新表缓存就会被删除,降低效率 第三步:   ...分析器 没有命中缓存的话就要开始执行语句了,首先对sql语句进行解析, 首先做 “词法解析”,分析出sql语句关键词等字符串代表什么含义,然后通过”语法分析“判断这个sql是否满足语法标准。...第四步:   优化器 优化sql执行速度,比如执行索引、表连接(join)执行顺序,然后决定出最快执行方案 第五步:   执行器 判断用户对这个表是否有权限,有的话就会根据这个表引擎执行通过优化器给出最优执行方案去执行

4.2K10

Mysql系列】(一)MySQL语句执行流程

连接器连接流程 mysql -hip -Pport -uuser -p 是一个连接到 MySQL 服务器命令,其中 ip 是要连接 MySQL 服务器主机名或 IP 地址,port 是 MySQL...此时,我们可以在命令行输入 SQL 语句,并将其发送给 MySQL 服务器进行执行。 MySQL 服务器接收到 SQL 语句后,会执行相应操作,比如查询、插入、更新等。...它可以在执行查询语句时,将查询结果缓存到内存,以便后续相同查询可以直接从缓存获取结果,而不需要再次执行相同查询操作。...MySQL 查询缓存优点包括: 提高查询性能:对于相同查询语句,可以直接从缓存获取结果,避免了再次执行查询开销,提高了查询性能。...t where ID=1' at line 1 优化器 什么是 MySQL 优化器 MySQL 优化器(MySQL Optimizer)是 MySQL 数据库一个组件,负责分析和优化查询语句执行计划

30830

一文搞懂select语句MySQL执行流程

好了,今天我们就一起来聊聊select语句是如何在MySQL执行。文章主要内容如下。 ?...select * from user where user_id = 1001; 当我们在MySQL命令行输入上述SQL语句时,这条SQL语句到底在MySQL是如何执行呢?...接下来,我们就以这条SQL语句为例,说说select语句是如何在MySQL执行。...MySQL逻辑架构 在介绍select语句MySQL执行流程之前,我们先来看看MySQL逻辑架构,因为任何SQL语句执行都离不开MySQL逻辑架构支撑。...也就是说,SQL语句MySQL执行流程MySQL逻辑架构是密不可分。 ? 在上图中,我们简单画了下MySQL逻辑架构图,并且给出了逻辑分层和每层各部分功能。

3.8K20

MySQLjoin语句

MySQLjoin语法 在MySQL,join语句想必大家都不陌生,今天我们围绕join语句展开,说一些可能平时不关注知识点。...整个join语句执行过程如下: a、从表t1拿到一条记录字段a值 b、拿a值去t2表查找,查找匹配行 c、找到结果,和表t1行拼接成一行记录,作为结果一条记录 d、重复以上三个步骤,直到...在这个过程,因为t2表使用到了索引,而且执行过程是循环执行,所以MySQL把这种情况下join查询称之为index Nested-Loop join。...这里,我们简单推一下复杂度公式: 假设驱动表记录为M,被驱动表值是N,因为被驱动表使用了索引,在一棵b+树上索引查找效率近似logN,因为我们语句时select * ,要牵扯到回表到聚集索引查询所有字段...最后介绍下,MySQL通过下面的参数来控制join buffer大小: mysql> show variables like '%join_buffer%'; +------------------

2.1K10

MySQL高级篇-流程控制语句

我们可以在存储过程和函数实现比较复杂业务逻辑,但是需要对应流程控制语句来控制,就像Java中分支和循环语句一样,在MySQL也提供了对应语句,接下来就详细介绍下。...语句结构 说明 顺序结构 程序从上往下依次执行 分支结构 程序按条件进行选择执行,从两条或多条路径中选择一条执行 循环结构 程序满足一定条件下,重复执行一组语句 针对于MySQL 流程控制语句主要有...这里“[]”内容是可选。...ELSE 结果n或语句n(如果是语句,需要加分号) END [case](如果是放在begin end需要加上case,如果放在select后面不需要) CASE语句实际案例 # CASE 语句...WHILE语句基本格式如下: Javawhile语句 while(条件表达式){ // 循环体 } MySQLWHILE语句 [while_label:] WHILE 循环条件 DO

56910

MySQL DML 语句执行流程,你理解跟我一样吗?

DML 执行流程 如果你对 MySQL 这两个日志没有了解过的话,上面的特性是很难理解,如果结合着 DML 语句执行流程就会好理解一点,比如我现在要在数据库更新 id = 1 这一行 value...主要流程如下,MySQL会从内存获取相应数据行(如果没有先从磁盘 load 到内存),然后将数据行进行更新并将新行写入内存后进行redo log写入和 bin log 写入,在一开始 redo...你可以想一下,一个事务会有多个 DML 语句,而每次 DML 语句都进行写盘会进行大量系统调用导致资源浪费和时间浪费,所以每次 DML 语句时候只是会将 日志先缓存到内存 redo log buffer...对于这个问题就可以总结为两点: 通过日志顺序写提高磁盘效率 通过组提交减少系统调用 总结 这里我们主要介绍了在 MySQL 一条 DML 语句是如何执行,redo log 、bin log又是如何和...总的来说就是 MySQL 在进行 DML 语句时候会先写日志缓存(为了事务多个 DML 语句而不多次进行写盘操作),等到事务提交时候会进行日志真正落盘(“双一配置”),其中还使用了两阶段提交加上redo

1.1K31

JavaSEif语句、switch语句:如何控制程序流程

其中最基本就是if语句和switch语句,这两种语句都可以用于根据不同条件执行不同代码块。在日常开发,对于一些需要基于条件来进行判断和控制业务逻辑,if和switch语句都是必不可少工具。...摘要  本文主要围绕JavaSE条件语句:if语句、switch语句进行介绍和解析。...在介绍同时,我们还会结合实际应用场景,解析if和switch语句优缺点,以及在类定义if和switch语句方法和标准等。...在这段代码,使用了if-else语句来进行条件判断,当num大于0时,执行if语句代码,即输出"num是正数。";否则执行else语句代码,即输出"num是负数或0。"。...类代码方法介绍定义if语句  在类定义if语句方法非常简单,只需要根据语法要求编写if语句即可。

15351

MySQL基础架构之查询语句执行流程

这篇笔记主要记录MySQL基础架构,一条查询语句是如何执行。...比如,在我们从student表查询一个id=2信息 select * from student where id=2; 在解释这条语句执行流程之前,我们看看MySQL基础架构。...执行语句时候,mysql首先是去查询缓存,之前有没有执行过这样语句mysql会将之前执行过语句和结果以key-value形式存储起来(当然有一定存储和实效时间)。...称之为比较能反映性能提升指数,一般来说达到3:1则算是查询缓存有效,而最好能够达到10:1 分析器 在查询缓存实效或者是无缓存时候,这个时候MySQLserver就会利用分析器来分析语句,分析器也叫解析器...总结 MySQL得到sql语句后,大概流程如下: 0.连接器负责和客户端进行通信 1.查询缓存:首先查询缓存看是否存在k-v缓存 2.解析器:负责解析和转发sql 3.预处理器:对解析后sql树进行验证

1.1K10

Java流程控制语句 (基础篇四)

流程控制就是对事物次序布置和安排,在程序中就是对代码执行次序安排和控制 程序流程控制主要有三种:顺序流程、选择流程、循环流程。...顺序流程:比如打印输出代码按照指定顺序结构依次排序,打印结果按照代码顺序执行打印; 循环流程:选择结构代码实现; 循环流程:循环结构代码实现; 一、顺序结果 顺序结构最容易理解也比较简单,执行顺序就是代码编写顺序...System.out.println(2); System.out.println(3); } 输出: 1 2 3 二、选择结构 Java代码存在一种特殊语句,叫做选择语句,这种选择语句也需要对一些条件作出判断...执行流程: 首先计算出表达式值 其次,和case依次比较,一旦有对应值,就会执行相应语句,在执行过程,遇到break就会结束。...和选择结构if判断也有点类似,满足条件就执行 {} 内语句,区别在于while语句会反复地执行,知道条件不成立。 执行流程: 执行顺序:①②③④>②③④>②③④…②不满足为止。

44910
领券