事物的隔离级别分为以下几种:
1.读未提交 (read-uncommitted) ------------------------>脏读、不可重复读、幻读
2.读已提交| 不可重复读(read-committed)---------------->不可重复读、幻读
3.可重复读(repeatable-read)----------------------------->幻读
4.可串行化(serializable)-------------------------------->解决了以上三种问题,比较安全
读未提交:指单条数据 ,事物A再查询一条数据时,事物B对数据进行了修改,但未提交,此时事物A再次查询会查询到事物B未提交的事物,此时事物B回滚,那么事物A读到的数据就是脏数据,所以称为脏读
读已提交:指单条数据 ,事物A在查询的时候,结果事物B对事物进行了更改,事物A两次读的结果不一样,即不可重复读
可重复读:指多条数据 ,事物A在查询多条数据时,结果事物B在表里新插入了数据,此时事物B再查询两次结果不一样,以为产生了幻觉,所以称为幻读;
可串行化: 成功的解决了以上三种,但性能低下
小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表