东莞长安网站,企业网站网站建设公司,建设网站好学吗,旅游的网页设计模板为什么要mvcc#xff1f;
提高并发度#xff0c;如果读和写都是通过加锁的方式#xff0c;并发肯定上不来#xff0c;通过mvcc来实现写通过加锁#xff0c;读通过mvcc readView机制
3.9.1 Undo版本链
再重复一遍#xff0c;页面中的记录存放在用户表空间的数据页中
提高并发度如果读和写都是通过加锁的方式并发肯定上不来通过mvcc来实现写通过加锁读通过mvcc readView机制
3.9.1 Undo版本链
再重复一遍页面中的记录存放在用户表空间的数据页中undo log存在系统表空间的undo segment中
3.9.2 ReadView 内容有哪些 m_ids :表示生成生成ReadView时活跃的事务id列表min_trx_id: 表示生成ReadView时活跃读写事务最小的id也就是m_ids中的最小值max_trx_id: 表示生成ReadView时系统分配给下一个事务的id值creator_trx_id: 表示生成该ReadView时事务id 可见规则 大于max_trx_id,肯定不可见说明我创建事务的时候另外事务还没有创建小于 min_trx_id,肯定是可见的说明我创建事务的时候事务已经提交了小于max_trx_id,但是不在活跃列表中肯定是可见的说明更新在前查询在后但是更新没有提交事务所以刚开始活跃列表里有它但是提交事务之后活跃列表就没有它了所以更新提交完再查一遍就能查到了 RC隔离级别RC的时候需要在select的时候查询到别人提交的数据所以RC的时候是利用每次Select就去创建一次ReadView保证能看到别人提交的数据 RR的级别RR的时候第一个select的时候就创建好ReadView后续都使用的是这个ReadViewRR级别如果使用ReadView的话没办法完全解决幻读因为存在锁定读不从readview里面拿数据从数据库拿最新数据还是会导致幻读
幻读的2种情况
Session A select * from t for update然后 Session B insert into t, 再然后 Session A select * from t for update就把Session B插入的数据查出来了另外一种情况 总结
RR隔离级别下间隙锁才有效RC 隔离级别没有间隙锁RR隔离级别是为了解决幻读快照读依靠mvcc控制当前读通过间隙锁解决间隙锁和行锁合称 Next-Key Locks,每个 Next-key Locks是 [)