事务的四种隔离级别:
- 读未提交:会出现脏读,即在事务A可以读到事务B未提交的脏数据。
- 读已提交:事务A只能读到事务B提交后的数据,可以避免脏读,但是会出现不可重复读的情景。即:事务A在两次读取同一条数据的过程中,事务B对该条数据进行了update,导致事务A在事务B提交数据前后两次读取的数据不一样,该现象称之为:不可重复读。
- 可重复读:事务A在读取数据之前,不允许其他的事务对其进行修改操作。应该避免了两次读取数据不一致的情况,但是无法避免幻读:即在A数据读取的过程中,没有修改,但是插入了新的数据,新增或者删除了数据。这种情况称之为幻读。
- 可串行化:可避免幻读。在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。