1.解析MySQL中一条SQL查询语句的执行过程

一条SQL查询语句是如何执行的?

最近在思考工作三年了,我应该如何精进自己的技术。也是应于领导的任务,也才想起来,自己好久没有给自己安排一个系统的学习规划了。想起了自己在极客时间里的课程《MySQL实战45讲》还一直囤着没有开始研读。三年来,其实也有反反复复的在学习MySQL的一些知识点,但都太零散了,我们在一个学习快餐文化的年代里,读别人的博客,知识体系的获取建立在别人的总结之上,不愿意沉下心来自己去研究原理与源码(小声bb:我可能是自己的技术不够硬,看不懂啊),没有一个系统的知识体系。

给自己定了一个小目标,在今年结束前,系统的学习MySql,每周定期安排个人时间进行学习,参考极客时间课程《MySQL实战45讲》与书籍《高性能MySQL》,并且定期的输出一些自己的产出。行动 + 坚持 ,2021 加油干吧~

数据库实际上也是一个应用系统

一、MySQL的组成

MySQL 是由 Server 层存储引擎层两部分组成的。

可以进一步细分为:

  • 连接器 – 连接器负责跟客户端建立连接、获取权限、维持和管理连接
  • 查询缓存 – 性能优化的一个模块
  • 分析器 – “词法分析”和“语法分析” ,让MySQL 就知道客户端提交的SQL语句要做什么了
  • 优化器 – 在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。
  • 执行器 – 与存储引擎交换,调用引擎的接口开始执行语句
  • 存储引擎 – 负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎

二、一条SQL查询语句的执行

2.1 图解(引用于《MySQL实战45讲》)

数据库模块图

2.2 执行流程详细图解(自己的梳理)

个人的理解梳理

2.3 一个访客的故事(类比于生活)

在极客时间课程的评论里看见了一个很有趣的类比,向这位同学(ID:深藏Blue)致敬。

把SQL的查询语句,比喻为为们要去一栋大楼里找两名叫张三和李四的人:

连接器:门卫,想进请出示准入凭证(工牌、邀请证明一类)。“你好,你是普通员工,只能进入办公大厅,不能到高管区域”此为权限查询。
分析器:“您需要在公司里面找一张头发是黑色的桌子?桌子没有头发啊!臣妾做不到”
优化器:“要我在A B两个办公室找张三和李四啊?那我应该先去B办公室找李四,然后请李四帮我去A办公室找张三,因为B办公室比较近且李四知道张三具体工位在哪”
执行器:“好了,找人的计划方案定了,开始行动吧,走你!糟糕,刚门卫大哥说了,我没有权限进B办公室”

----------------------------------- 这是一个小尾巴哦~~~~

参考文章:极客时间《MySQL实战45讲》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值