MySQL 中一条查询 SQL 是如何执行的?

本文阅读 2 分钟
首页 知识库 正文

MySQL 中一条查询 SQL 是如何执行的?

select name from t_user where id=1
  1. 取得链接,使用使用到 MySQL 中的连接器。
    select name from t_user where id=12. 查询缓存,key 为 SQL 语句,value 为查询结果,如果查到就直接返回。不建议使用次缓存,
    在 MySQL 8.0 版本已经将查询缓存删除,也就是说 MySQL 8.0 版本后不存在此功能。
  2. 分析器,分为词法分析和语法分析。此阶段只是做一些 SQL 解析,语法校验。所以一般语法错
    误在此阶段。
  3. 优化器,是在表里有多个索引的时候,决定使用哪个索引;或者一个语句中存在多表关联的时
    候(join),决定各个表的连接顺序。
  4. 执行器,通过分析器让 SQL 知道你要干啥,通过优化器知道该怎么做,于是开始执行语句。执
    行语句的时候还要判断是否具备此权限,没有权限就直接返回提示没有权限的错误;有权限则
    打开表,根据表的引擎定义,去使用这个引擎提供的接口,获取这个表的第一行,判断 id 是都
    等于 1。如果是,直接返回;如果不是继续调用引擎接口去下一行,重复相同的判断,直到取
    到这个表的最后一行,最后返回。
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

分库分表之后,id 主键如何处理?
« 上一篇 08-26
MySQL 索引类型有哪些?
下一篇 » 08-26

发表评论