数据库事务隔离级别

并发事务三大问题

通常,两个并发事务同时访问数据库时,可能存在以下三个问题:

  1. 幻想读
    1. 事务T1读取一条指定where条件的语句,返回结果集;
    2. 事务T2插入一条新纪录恰好满足T1的where条件;
    3. 事务T1再次查询,结果看到了T2插入的那条记录;
  2. 不可重复读:
    1. 事务T1读取一条记录;
    2. 事务T2修改了T1刚刚读取的记录;
    3. 事务T1再次查询,读到的是T2修改后的记录;
  3. 脏读:
    1. 事务T1更新了一条记录,但是未做提交;
    2. 事务T2读取了T1更新后的记录;
    3. 事务T1进行回滚操作,取消了刚才的修改;

事务隔离级别

所谓的事务隔离级别,指的是一个事务对数据库的修改与并行的另一个事务的隔离级别。

为了处理上述可能出现的问题,SQL92标准定义了以下四种事务隔离级别:

image

关于事务和锁方面的内容,需要不断细化,感觉目前缺失的知识内容太多,暂时不深入了。

原文地址:https://www.cnblogs.com/huntdream/p/6008559.html