1.脏读
a事务在事务没有提交时,b事务查询到了a事务未提交的数据。
如a事务执行update table set a = 123 where id = 0001但事务还没有提交时,b事务执行select * from table where id = 0001,查询到了a =123。
2.不可重复读
事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致
如事务a中执行了两次select * from table where id = 0001 第一次 结果为 0001 1000,但在执行完第一次还没执行第二次时,事务b执行了update table set balance = 100 where id = 0001,导致a事务第二次才行为 0001 100。
3.幻读
事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据 称为幻读
隔离级别
mysql 默认可重复读,不建议使用串行化,串行化影响性能太大,如有需要可以在程序中加锁。