【MySQL45讲】day1.一条sql查询语句是如何执行的

一、mysql架构图

 

二、server层

1.连接器

        在执行sql之前,客户端需要对mysql建立连接,在经过经典的tcp握手建立连接后,连接器开始验证身份 ,此时需要输入用户名密码,然后登陆成功。如果此时root修改了当前用户的权限,则不会立刻生效,因为用户在建立连接的时候已经查询到了之前的权限,当用户下一次登录时才会获取到修改后的权限信息。另外,当客户端与mysql在默认的8小时没有发送请求的话,那么连接就会断开,我们可以通过url设置自动重连或者修改这个默认时间大小的配置。

2.分析器

        mysql执行语句前,需要验证我们输入的sql是否正确,那么就是在分析器中完成的,mysql会对sql进行词法分析和语法分析,这两种分析是融合在一起完成的。

3.优化器

        当我们的sql输入正确时,优化器会根据当前table中的索引,为我们选择合适的索引或者表的连接顺序。

4.执行器

        最后就是执行的阶段,在执行之前,mysql会判断当前用户对表t的权限,如果权限不足就会报错。如果有权限,那么就使用对应的存储引擎提供的接口去查询我们所需要的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值