前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >select语句的执行流程(MySql)

select语句的执行流程(MySql)

作者头像
MaybeHC
发布2024-04-23 19:21:42
680
发布2024-04-23 19:21:42
举报
文章被收录于专栏:技术之路技术之路

学习了极客时间MySql课程,做个总结 以一条select语句为例:select * from T where ID=4 ,梳理下执行的流程

一条sql语句在执行过程中需要经过连接器、分析器、优化器、执行器等,也有可能会经过查询缓存,如图所示

在这里插入图片描述
在这里插入图片描述

连接器

  • 想要连接数据库那么必须是要通过连接器,连接器负责与客户端建立连接、获取权限、维持和管理连接。
  • 当你输入了用户名和密码后,连接器会在权限表中查询你拥有的权限,之后本次连接中你对表能否操作查询删除修改等,都依赖于此时读取到的权限。
  • 假设此时修改了你的权限,那么也是不会影响你本次的连接的,只有在下一次创建连接,查询权限的时候才会生效。

查询缓存

  • 在经过连接器之后,会执行第二步查询缓存,在MySql拿到查询后,会先到查询缓存查看是否执行过这条语句,之前执行的结果会以key-value对的形式存在,如果不在查询缓存中,会继续执行后面的极端,如果命中缓存则直接返回结果。在MySql8.0之后去掉了查询缓存的功能。

分析器

  • 分析器会先做“词法分析”,识别出sql里的字符串分别是什么,读出“select”关键字对出这是一条查询语句,把字符串T识别成“表T”
  • “语法分析”,根据词法分析的结果,判断该条sql是否满足MySql的语法

优化器

  • 优化器的作用在于选择最优的逻辑执行sql,例如在一个语句进行多表关联的时候,决定各个表的连接顺序

执行器

  • 在开始执行前,先判断你对表T是否有执行查询的权限,没有就返回没有权限的错误,有权限则继续执行
  • 执行器根据表的引擎定义,调用该引擎提供的接口。
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

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

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

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