事务的并发控制可能产生哪些问题 及 四种事务隔离级别

喜夏-厌秋 提交于 2019-11-26 04:44:00

1.事务的并发控制可能产生哪些问题

        不同事务之间可能会互相影响,比如一个事务修改另一个事务也改了,但是另一个事务的修改把这个事务的修改给覆盖掉了,这就是所说的事务并发控制问题。

如果不对事务进行并发控制,可能会产生四种异常情况

幻读(phantom read):一个事务第二次查询出现第一次没有的结果,说明别的事务已经插入一些数据。注意这是在同一个事务里面的查询

非重复读(nonrepeatable read):一个事务重复读两次得到不同结果,说明读取操作结果是不可重复的。

脏读(dirty read):一个事务读取到另一个事务没有提交的修改,就是当另一个事务它会没有提交修改一个事务就读取到了修改。

丢失修改(lost update):并发写入造成其中一些修改丢失。

 

2.四种事务隔离级别

  为了解决并发控制可能产生的异常问题,数据库定义了四种事务的隔离级别

读未提交(read uncommitted):别的事务可以读取到未提交改变

读已提交(read committed):只能读取已经提交的数据

可重复度(repeatable read):同一个事务先后查询结果一样,Mysql InnoDB默认实现可重复读级别。

串行化(Serializable):事务完全串行化的执行,隔离级别最高,执行效率最低。相当于把数据库在一个事务执行的时候完全锁住,等它执行完才能执行下一个。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!