脏读,不可重复读,幻读一般都发生在两个事务或者多个事务同时进行时,由于其事务隔离性等级不高所引起的。
脏读:事务一读取到事务二未提交的数据。(针对另一事务未提交)。
例如:事务二修改了数据,但是没有提交;而数据一读取数据的时候读取到了修改后的数据。这个时候事务一读取到的数据是无效的,称为脏数据。
不可重复读:事务一第一次读取和第二次读取到的数据不一样。(针对另一事务提交后)
例如:在事务一第一次读取到数据后,事务二修改了数据;随后事务一再次读取,会读到事务二修改后的结果。这叫不可重复读。
幻读:事务一的插入删除被另一事务所影响
例如:事务二插入了一条数据,但是此时事务一又插入了一条id相等的数据,造成插入失败。但是事务一看不到事务二所插入的数据。
解决办法:提高隔离等级
四个等级的中文意思:读未提交,读已提交,可重复读,串行化