MYSQL的sql执行流程学习

SQL执行流程

  1. 客户端创建一个TCP连接请求,mysql服务器校验用户名和密码以及访问ip是否正确,如果正确则在连接池中获取一个连接,
  2. 链接再从线程池中获取一个线程来执行sql语句
  3. sql语句执行时先会查询缓存如果缓存中有对应的sql执行缓存则直接返回结果给客户端,没有的话则进入下一步(MYSQL8.0已取消)
  4. 对sql进行解析包括词法解析和语法解析,此时还会判断语法是否符合要求,不符合则会返回错误信息给客户端,解析完成后会生成一个新的语法树
  5. 优化器再对其进行优化,包括物理优化和逻辑优化
  6. 优化完成后会生成一个执行计划交给执行引擎去执行,此时执行引擎会校验用户是否有操作权限
  7. 最后拿到结果返回给客户端

sql每个部分的执行顺序

from 表1 cross join 表2 -> on 使用表连接条件过滤 -> (left /right) join 补全on过滤掉的主表数据 -> where 条件筛选-> group by -> having -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值