数据库事务并发问题----各种事务隔离下的情况

目录

一、读未提交下的脏读

二、读已提交下的不可重复读

三、可重复读的避免了不可重复读等所有问题

四、并发修改同一个数据下的排队

 

 


一、读未提交下的脏读

  • 设置当前会话的隔离级别:

  

 set session transaction isolation level read uncommitted;

  

出现脏读问题,读到了脏数据。


二、读已提交下的不可重复读

 set session transaction isolation level read committed;

读已提交下,没有脏读问题了,但是,同一事务期间并没有保证前后读取的数据是一致的,出现了不可重复读问题。


三、可重复读的避免了不可重复读等所有问题

可重复读的情况下,只要在同一件事务期间,第一次读取是什么样子,以后就是什么,即使外界的数据都没了,也还能读到(快照读


四、并发修改同一个数据下的排队

等多事务同时修改数据

事务A先修改数据,但未提交,这时,事务B再次修改同一条数据,他并不会立刻执行,而是阻塞住,等待事务A提交后,才会执行。


猜你喜欢

转载自blog.csdn.net/weixin_44134725/article/details/111234579