MySQL执行一条SQL的具体步骤及内部构造

1、MySQL执行一条SQL的具体步骤:

在这里插入图片描述

Server层按顺序执行sql的步骤为:

1)客户端请求->
2)连接器(验证用户身份,给予权限) ->
3)查询缓存(存在缓存则直接返回,不存在则执行后续操作)->
4)分析器(对SQL进行词法分析和语法分析操作) ->
5)优化器(主要对执行的sql优化选择最优的执行方案方法) ->
6)执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口)->
7)去引擎层获取数据返回(如果开启查询缓存则会缓存查询结

简单概括:

连接器:管理连接、权限验证;
查询缓存:命中缓存则直接返回结果;
分析器:对SQL进行词法分析、语法分析;(判断查询的SQL字段是否存在也是在这步)
优化器:执行计划生成、选择索引;
执行器:操作引擎、返回结果;
存储引擎:存储数据、提供读写接口。

2、MySQL的内部构造的两个部分

可以分为服务层存储引擎层两部分,其中:

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

2)存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了默认的存储引擎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值