极客时间数据库问答题

题目 01- 一条 SQL 语句在 MySQL 中是如何执行的?

 

1.首先如果是在命令行执行的,执行前首先要登录mysql,如果是后端程序通过驱动执行的,首先要获取连接,一般都会通过连接池获取连接,不会每次都新建一个连接。

2.连接到MySQL后,mysql会对语句进行语法分析,所谓分析,指的是识别到要查那哪个表,哪个列等等。

3.解析之后的下一步是查询缓存,如果是select语句,会先去查询缓存查,如果是update语句,会去清空这个表的查询缓存。由此可见查询缓存的使用代价非常高,所以在mysql8.0之前,建议按需使用,只在需要使用的时候显式开启。在mysql8之后,这个功能已经被去掉了。

4.然后下一步是优化器,通过优化器选择最优的执行方案,比如有多个索引可以选的时候,优化器会选择走成本较低的那个,这个成本包括io成本和时间成本。

然后调用存储引擎的接口去执行该语句。接下来以InnoDb为例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值