百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql怎么解决不成反复读
分享文章到:

mysql怎么解决不成反复读

发布时间:09/01 来源:未知 浏览: 关键词:

mysql解决不成反复读的办法:采纳了mvcc多版本并发操纵,mvcc是利用在每条数据后面加了潜藏的两列,即创立版本号和删除版本号,每个事务在开端的时候都会有一个递增的版本号。

【相关学习引荐:mysql学习】

mysql解决不成反复读的办法:

mysql中,默许的事务隔离级别是可反复读(repeatable-read),为理解决不成反复读,innodb采纳了mvcc(多版本并发操纵)来解决这一问题。

mvcc是利用在每条数据后面加了潜藏的两列(创立版本号和删除版本号),每个事务在开端的时候都会有一个递增的版本号

新增:

insert into user (id,name,age)values(1,"张三",10);

60fc36ea627460c4afa0a1c0c1622b9.png

更新:

update user set age = 11 where id = 1;

更新操纵采纳delete+add的方式来实现,第一将当前数据标记为删除

202155168fe30caf70fca2208f7891c.png

然后新增一条新的数据:

0489cc1f10367fee0eadc88d4513796.png

删除:删除操纵是直接将数据的删除版本号更新为当前事务的版本号

delete from user where id = 1;

768fabdeeaec4673b80e4af4e87c45a.png

查询操纵:

select * from user where id = 1;

查询操纵为了不查询到旧数据或已经被其他事务更换过的数据,需要知足如下前提:

1、查询时当前事务的版本号需要大于或等于创立版本号

2、查询时当前事务的版本号需要小于删除的版本号

即:create_version <= current_version < delete_version

这样就可以幸免查询到其他事务修改的数据

以上就是mysql如何解决不成反复读的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板