最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql怎么解决不可重复读

来源:动视网 责编:小采 时间:2020-11-09 06:51:08
文档

mysql怎么解决不可重复读

mysql怎么解决不可重复读:mysql解决不可重复读的方法:采用了mvcc多版本并发控制,mvcc是利用在每条数据后面加了隐藏的两列,即创建版本号和删除版本号,每个事务在开始的时候都会有一个递增的版本号。【相关学习推荐:mysql学习】mysql解决不可重复读的方法:mysql中,默认的事
推荐度:
导读mysql怎么解决不可重复读:mysql解决不可重复读的方法:采用了mvcc多版本并发控制,mvcc是利用在每条数据后面加了隐藏的两列,即创建版本号和删除版本号,每个事务在开始的时候都会有一个递增的版本号。【相关学习推荐:mysql学习】mysql解决不可重复读的方法:mysql中,默认的事


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

mysql解决不可重复读的方法:

mysql中,默认的事务隔离级别是可重复读(repeatable-read),为了解决不可重复读,innodb采用了mvcc(多版本并发控制)来解决这一问题。

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

新增:

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

更新:

update user set age = 11 where id = 1;

更新操作采用delete+add的方式来实现,首先将当前数据标志为删除

然后新增一条新的数据:

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

delete from user where id = 1;

查询操作:

select * from user where id = 1;

查询操作为了避免查询到旧数据或已经被其他事务更改过的数据,需要满足如下条件:

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

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

即:create_version <= current_version < delete_version

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

文档

mysql怎么解决不可重复读

mysql怎么解决不可重复读:mysql解决不可重复读的方法:采用了mvcc多版本并发控制,mvcc是利用在每条数据后面加了隐藏的两列,即创建版本号和删除版本号,每个事务在开始的时候都会有一个递增的版本号。【相关学习推荐:mysql学习】mysql解决不可重复读的方法:mysql中,默认的事
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top