博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL执行一条SQL的具体步骤及内部构造
阅读量:3972 次
发布时间:2019-05-24

本文共 618 字,大约阅读时间需要 2 分钟。

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版本开始成为了默认的存储引擎。

转载地址:http://petki.baihongyu.com/

你可能感兴趣的文章
内部类如果要引用外部类的变量,则该变量必须为final
查看>>
js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交,兼容IE、FF浏览器)
查看>>
优秀程序员的标准
查看>>
混乱的代码
查看>>
重新理解对象参数的用法
查看>>
2012年开发者该做的11件事
查看>>
利用java实现的一个发送手机短信的小例子
查看>>
2012年1月8号订火车票历程
查看>>
My97日期控件
查看>>
struts中把后台对象传到前台jsp页面上的方法
查看>>
<c:forEach varStatus="status">中 varStatus的属性简介
查看>>
SVN上的常见问题
查看>>
SVN上的常用操作(有图有真相)
查看>>
EL表达式详解
查看>>
mysql数据库介绍
查看>>
不同的数据源,不同的数据操作流程——记录下最近的项目心得
查看>>
Quartz_cron表达式
查看>>
Quartz_框架快速入门
查看>>
POI导出EXCEL经典实现
查看>>
photoshop中常用的图像处理(有图有真相)
查看>>