MySQL 高频面试题目一:一条SQL查询语句是如何执行的?

 

(1)客户端与数据库建立连接

(2)查询缓存,如果命中缓存,则立即返回存储在缓存中的数据。

(3)解析器先进行词法分析,将SQL语句打碎成一个个单词,根据构词规则识别单词中的关键字和非关键字,接着进行语法解析,判断是否满足MySQL的语句,接着生成语法树。如果语法错误则返回

 

 

(4)解释器是分析语法有没有错误,但是它无法知道数据库中有没有数据表和字段,预处理器根据MySQL规则进一步检查解析树是否合法。如检查表名,列名是否正确,是否有表权限等。

(5)查询优化器对解析树进行优化,然后生成不同的执行计划,然后选择一种最优的执行计划,MySQL里边使用的是基于开销的优化器,哪种执行计划开销最小就使用哪一种。(可以用EXPLAIN来查看执行计划,其能够看出多表关联查询,先查询哪一张表?执行查询的时候用到了什么索引)

(6)执行引擎根据执行计划调用存储引擎的API完成整个查询。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值