前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0 SQL 执行流程

MySQL 8.0 SQL 执行流程

原创
作者头像
啵啵肠
发布2023-11-20 14:37:14
1300
发布2023-11-20 14:37:14
举报

MySQL 8.0 SQL 执行流程

首先我们先来看下 MySQL 的经典架构图,8.0 的没怎么翻到,先看看这个了。

图上有这么几个模块:

Collectos

连接器,客户端可以通过这些方式对 MySQL 服务端发起通信。

Services & utilities

Connection pool

连接池,负责连接的处理、安全和认证,比如我们的请求线程的新建、密码认证、权限获取都是由这个模块负责。这里缓存了权限,所以当你不断开连接,其他用户修改权限后,当前的连接的权限也不会改变。

SQL Interface

MySQL 的接口

Parser

语法解析器,将我们的 SQL 语句解析成相关的语法树。解析器先提取相应的关键词,然后进行语法解析,判断 SQL 是否符合相应的语法,然后生成语法树,上面拆分了 SQL 的各种成分,比如查询字段、查询表、匹配条件等。

Optimzer

优化器,将 SQL 进行优化生成多个执行计划。

执行器

上面优化器生成了多份执行计划后,接下来就由执行器选择一份计划执行了。执行器先会判断当前是否具有权限,然后才会去执行相应的 SQL 语句。

Caches

缓存命中,8.0 中已经被干掉了。作用是在每次查询时将结果缓存,然后再次查询可以加快访问速度,但是因为命中率太低,有点鸡肋所以在 MySQL 8.0已经不存在了。比如他是将 SQL 语句作为 key 进行命中匹配的,如果 SQL 中多加了一个空格也会被认为不是同一条 SQL 导致匹配不到。

Pluggable storage Engines

数据库的执行引擎插件。

文件系统

这个是存放 MySQL 的文件系统。

SQL 执行流程

SQL 流程是 SQL --> 解析器 --> 优化器 --> 执行器 --> 返回结果。

下面会将各个组件单独拉出来做分析。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL 8.0 SQL 执行流程
    • SQL 执行流程
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档