当前位置:   article > 正文

MySql快照读和当前读_mysql当前读和快照读?

mysql当前读和快照读?

1.快照读

顾名思义,就是从当前状态复制一份快照出来,之后可以从快照里读取数据,但是并不是真正将整份数据复制的,而是利用了版本机制实现。简单
select 不加锁的语句就是快照读。

select * from t_user;

select * from t_user where id = 1;
  • 1
  • 2
  • 3

2.当前读

全程在最新版本里读取数据。加锁的 select 语句,insert、update 和 delete 语句都是当前读。

select * from t_user for update;

select * from t_user lock in share mode;

insert into t_user values(...);

update t_user set username = ?  where id = ?;

delete from t_user where id = ?;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.引申

  • ​ 快照读依赖 版本链 和 readview 机制实现。

  • ​ undo log 依赖 版本链,用于事务回滚。

  • ​ redo log 的作用是用于事务前滚。

  • ​ MVVC是一种协议,利用版本链机制实现。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/506154
推荐阅读
相关标签
  

闽ICP备14008679号