先来讲讲脏读 不可重复读 和 幻读。 脏读:我们在并发编程中是很熟悉的,通俗的讲就是你读得数据已经被修改了,已经过时失去意义了。 不可重复读: 同一个事务里面多次读取同一行数据,却返回不同的结果。 幻读:同样一笔查询在整个事务过程中多次执行后,查询所得的结果集不一样。 事务四大特性 ACID 要求事务所包含的全部操作是一个不可分割的整体,如果有一步发生异常,则全部不提交。 A给B转钱,A减和B增这两个操作必须保持一致。 事务会将一部分数据与其他事务隔离,防止脏读等。 事务的结果被写到持久化存储器中。 事务四大隔离级别 隔离级别越高,则性能相对越低,反之亦然。 最低的隔离级别,跟你直译的意思一样:可以读取其它事务未完成的结果。(脏读) 很明显,脏读 不可重复读 和 幻读这三个问题它都有。 大部分数据库采用的默认隔离级别,比上一个隔离级别多了限定:在该事务完成后,才能读取该事务的数据更新后的结果。 它可以避免脏读,但是也有不可重复读取和幻读的问题。 可以保证在整个事务的过程中,对同一笔数据的读取结果是相同的,不管其他事务是否同时在对同一笔数据进行更新,也不管其他事务对同一笔数...