MySQL 执行计划和MySQL执行过程

 

 

SQL执行计划

数据库服务器在执行sql语句的时候,会准备几套方案,最后选择消耗资源最小的那个方案

 

MYSQL架构图:

 

 

MYSQL执行流程

  1. 客户端连接服务器。
  2. 查询缓存。不会直接查询数据库。会从缓存中查看是否存在相同语句的执行计划,如果存在将省略语法检查、语言检查、加锁、权限核对、SQL优化等过程。直接执行SQL语句。(以下为没缓存的情况)
  3. 语法检查。查看SQL语法规则是否OK,如果不OK,返回错误信息给客户端,否则进行下一步操作。
  4. 语义检查。若SQL语法OK,服务器会对SQL中的表,字段属性等内容进行检查。
  5. 确定最佳执行计划。以上均OK后,如果查询语句为SELECT时,服务器进程还是不会直接查询数据库文件,数据库服务优化器会按照一定规则对当前SQL语句进行自我优化(优化成都有限)。当优化器确定好最优执行计划后,会将该执行计划保存到缓存中,方便下次高效查询。
  6. 权限核对(数据访问权限)。如果连接的用户不具备数据访问权限时,将不能够获取倒是数据
  7. 加锁。为保证数据一致性,系统会对需要查询的对象加锁操作
  8. 语句执行。SQL解析完成之后,才会真正执行。如果当前选择执行的数据已被读取到缓冲区,直接返回该数据。如果缓冲区没有,从数据库中读取,病刷新到缓冲区。
  9. 数据提取。语句执行完后,查询的数据其实还在服务器中,需要通过服务器数据提取进程将数据返回到用户客户端。

 

 

 

----------------------------------

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值