事务的隔离级别
一、在多事务在在相近的时间由多人处理时,此时往往存在一系列并发问题: 1、 脏读(Drity Read) 已知有两个事务 A 和 B, A 读取了已经被 B 更新但还没有被提交的数据,之后, B 回滚事务, A 读取的数据就是脏数据 2、 不可重复读(Non-repeatable read) 已知有两个事务A 和 B , A 多次读取同一数据, B 在 A 多次读取的过程中对数据作了 修改 并提交,导致 A 多次读取同一数据时,结果不一致 3、 幻读(Phantom Read) 已知有两个事务A 和 B , A 从一个表中读取了数据,然后 B 在该表中 插入 了一些新数据,导致 A 再次读取同一个表 , 就会多出几行,简单地说,一个事务中先后读取一个范围的记录,但每次读取的纪录数不同,称之为幻象读 注:不可重复读与幻读 区别就是在读取数据是另一方对数据尽行了何种修改: 修改 和 插入 二、处理方法: 事务隔离权限 根据实际需求,通过设置数据库的事务隔离级别可以解决多个事务并发情况下出现的脏读、不可重复读和幻读问题,数据库事务隔离级别由低到高依次为 Read uncommitted、Read committed、Repeatable read和Serializable 等四种。数据库不同,其支持的事务隔离级别亦不相同: MySQL数据库支持上面四种事务隔离级别