第二讲-日志系统:一条SQL更新语句是如何执行的-问题分析

本讲问题:一条SQL更新语句是如何执行的

1.首先你需要连接到这个服务器,这时候与你交互的是连接器。连接器负责与客户端建立连接、获取权限、维持和管理连接。
2.查询缓存(MySQL8.0删掉了这个功能)
3.如果没有命中缓存,那么就要开始真正执行语句。分析器需要对你的SQL语句做解析,判断你输入的SQL语句是否满足SQL语法。
4.经过了分析器,MySQL还需要对你的SQL语句进行优化,这时候涉及到的就是优化器,选择成本最小的执行计划。
5.最后就是执行器,分析器告诉你要做什么,优化器告诉你应该怎么做,而执行器才是真正执行语句的。判断你对该表是否有查询权限,再选择使用哪个引擎。
----相比于查询语句多了以下部分
6.返回行数据,对行数据进行修改
7.写入redolog,处于perpare阶段
8.写binlog,最后commit。

前面我说到定期全量备份的周期“取决于系统重要性,有的是一天一备,有的是一周一备”。那么在什么场景下,一天一备会比一周一备更有优势呢?或者说,它影响了这个数据库系统的哪个指标?

首先,是恢复数据丢失的时间,既然需要恢复,肯定是数据丢失了。如果一天一备份的话,只要找
到这天的全备,加入这天某段时间的binlog来恢复,如果一周一备份,假设是周一,而你要恢复
的数据是周日某个时间点,那就,需要全备+周一到周日某个时间点的全部binlog用来恢复,时间
相比前者需要增加很多;
看业务能忍受的程度,其次,是数据库丢失,如果一周一备份的话,需要确保整个一周的binlog
都完好无损,否则将无法恢复;而一天一备,只要保证这天的binlog都完好无损;当然这个可以
通过校验,或者冗余等技术来实现,

update执行流程图
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值