mysql存储引擎2

语句分析
sql分为两种
查询
更新(增加/修改/删除)

查询分析
select * from student where age = 18 and name = “张三”;

执行流程
1.检查该语句是否有权限,如果没有则抛出错误信息
2.查询缓存,如果有则直接返回结果(版本8.0以前)
3.分析器进行词法分析,提取SQL语句关键元素
4.优化器确定执行方案,
根据上述的SQL语句,优化器会确定两种方案:
4.1.先查询满足age为18的所有记录,然后在查询的结果集中再次筛选 name 为张三的结果集.
4.2.先查询满足name为张三的所有记录,然后在查询的结果集中再次筛选age为18的结果集
5. 权限校验,如果有则调用存储引擎接口,返回引擎执行的结果
流程是:
权限校验—》查询缓存–》分析器–》优化器–》权限校验–》执行器–》引擎

更新分析
insert into student values(null,“李四”,20);
执行流程
6. 检查该语句是否有权限,如果没有则抛出错误信息
7. 查询缓存,如果有则直接返回结果.(版本8.0以前)
8. 分析器进行词法分析,提取SQL语句关键元素
9. 优化器确定执行方案.
10. 权限校验,如果有则调用存储引擎接口,存储引擎把数据保存在内存中,同时记录redo log(重做日志)并预提交,然后通知执行器 随时可以提交
11. 执行器接收到通知后记录binlog(归档日志),然后调用存储引擎 提交redo log并返回结果给客户端
流程是:
分析器—》权限校验—》执行器—》引擎—redo log 预提交—》binlog—》redo log 提交

redo log 日志用来支持事务
bin log 日志 用来在MYSQL数据库崩溃后,重洗数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值