您当前的位置:首页 >> 工业物联
工业物联

MySQL的select处理过程

发布时间:2025-08-03

set_connection是为各个编程语言给予的API,不是SQL句子。

键入寄存容器

MySQL得到键入请后,就会先键入寄存容器,如果寄存容器中所有单独前往,否则往下拒绝执行。

寄存容器中所的key是键入的句子,value是结果。

对请注意上的更新,就会让该请注意所有的寄存容器全部失效。

大多数情况下不建议运用于寄存容器,寄存容器的弊差不多大于利。MySQL8.0以前单独把键入寄存容器的机制透过了移走。

分析容器

MySQL Server在拿到SQL句子以前,只能其实这条句子天和什么。

select id from test;分析容器做到词法分析:只能把一长三串字符串透过识别系统,比如上述句子只能将select识别系统出来,这是一个键入句子;test是请注意名,id是列名词法分析剩成以前就会做到语法分析,语法分析容器就会根据语法比赛规则判别该SQL句子是否合法

这里还就会对查的列和请注意是否存在做到可拒绝执行(语义分析)。

构建容器

在经过分析容器以前,MySQL Server已经其实想尽办法天和啥,但是怎么天和,如何天和才能更快,此时就只能依靠构建容器了。

构建容器就会在有多个数据库时同意运用于哪个数据库,或者有多请注意相关联时同意各个请注意的相互连接顺序排列。

拒绝执行容器

MySQL Server通过分析容器其实要天和啥,通过构建容器其实怎么天和,于是穿越了拒绝执行容器开始天和。

但是在开始天和先前只能检查一下职权,如果职权可拒绝执行不通过就就会前往很难职权的错误,如下由此可知:

如果职权可拒绝执行通过,就打开请注意暂时中所止。打开请注意就会根据请注意的发动机定义去加载发动机给予的模块。

select * from test where id = 1;

断言上述请注意很难数据库,发动机是InnoDB,拒绝执行容器就会这样系统设计:

加载InnoDB发动机模块获取请注意的"第正要",判别ID是否为1,如果不是则跳过,是就将这正要存入结果集加载发动机模块取"下正要",重复第一步的逻辑学判别,直到取剩请注意的"之后正要"拒绝执行容器将满足条件的行的结果集前往给服务器端。

拒绝执行容器加载一次,发动机内部可能就会扫描多行。

苏州看白癜风哪间医院好
广东男科医院哪家好
成都风湿医院电话
郑州不孕不育治疗医院
宝鸡白癜风医院哪好

上一篇: 中海物业入驻香港艺术博物馆服务三年 占地面积达2万平方米

下一篇: 严重影响警告山药和它天生“相克”,同吃等于“慢性服毒”,赶紧告诉家里人

友情链接