SQL更新语句执行

分析器:解析知道这是一条更新语句

优化器:决定使用ID索引

执行器:具体执行(包括运行+1之类的)

 

redolog:crash-safe能力,write pos和checkpoint的概念。 引擎层innodb,在数据库读取的时候不会用redolog合并,会用change buffer中的数据

binlog:为什么只能用于归档?没有提交状态?

    
redolog记录在某个数据页上做了什么修改(具体怎么做的)  
binlog给ID=2这一行的C字段+1  (做了什么做一个解释)  

redolog当作事务的标识  binlog标识数据操作

 

WAL:先写日志,再写磁盘

脏页:内存数据页和磁盘数据页内容不一致

干净页:内存和磁盘上的数据页内容一致

 

mysql抖一下 1、刷脏页 2、淘汰脏页

写入磁盘的几种情况

1、redo log满了  checkpoint会往前推进,所有脏页flush到磁盘

2、内存满了   淘汰数据页,如果是脏页,先写到磁盘。(如何判断是脏页?),淘汰脏页的时候,redolog会删吗

3、不忙的时候

4、mysql关闭的时候

刷脏页的策略:设置innodb_io_capacity(我的磁盘能力),IOPS(通过fio工具测试)

Mysql写入速度慢,TPS低,IO压力不大,可能就是innodb_io_capacity设置问题(innodb系统认为系统的能力差,刷脏页慢)

1、脏页比例 2、redo log写磁盘速度

脏页比例算法

Innodb_buffer_pool_pages_dirt/Innodb_buffer_pool_pages_total

脏页连坐刷  innodb_flush_neighbors

 

binglog会有一个标识表示binlog已经写完了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值