首页 > 数据库技术 > 详细

SQL语句的执行流程

时间:2020-06-29 18:26:24      阅读:85      评论:0      收藏:0      [点我收藏+]

摘自:https://www.itzhai.com/database/insight-into-the-underlying-architecture-of-mysql-buffer-and-disk.html*

1 MySQL架构

MySQL架构涉及到的常用组件:
技术分享图片

2 查询SQL执行流程

如执行以下SQL语句:
select * from t_user where user_id = 10000;

2.1 MySQL客户端与服务器端建立连接

建立过程:

  • 客户端通过SQL语句建立连接请求
  • 经过三次握手与服务器建立TCP连接
  • 连接器接收请求后使用用户密码进行身份验证
  • 验证通过后,获取用户的权限信息缓存起来,连接之后的操作都是基于该缓存中的权限执行SQL
    技术分享图片

2.2 执行SQL

  • 服务端接收到客户端的查询SQL后,先尝试从查询缓存中查询该SQL语句是否已经有缓存的结果了,如果有直接返回结果,没有就执行下一步
  • 分析器拿到SQL语句后会尝试对SQL语句进行词法分析和语法分析,检验SQL语句的正确性,通过之后继续往下执行
  • 优化器拿到分析器的SQL之后,开始继续解析SQL,判断需要走什么索引,根据实际情况重写SQL,最终生成执行计划
  • 执行器根据执行计划执行SQL,执行之前会进行操作权限检验
  • 执行器拿到select * from t_user where user_id=10000的所有记录,在依次判断user_name是不是等于”arthinking”,获取到匹配的记录
    技术分享图片

SQL语句的执行流程

原文:https://www.cnblogs.com/pcblogs/p/13208959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!