mysql 事务隔离级别一共有四种(r-u, r-c, r-r, s)
- 读未提交(read uncommited)
读未提交指的是: 在当前事务中可以读取到其他事务中尚未提交的数据 隔离级别最低,干扰性最大,会产生幻读
读已提交(read commited)
读提交指的是: 当前事务中只能读取到其他事务以及提交的数据,该级别下也会产生幻读
可重读 (repatable read) 这个是默认的隔离级别
可重读指的是: 无论其他事务是否提交,在当前事务中只要当前事务尚未提交,则看到的始终是一致的,该级别下依然会产生幻读,例如事务开始时读取到的表中数据是10条,当我们在事务里面插入了2条数据,提交后应该是12条,但是当并发情况下其他事务删除了表中数据时,我们提交事务后再查询得到的数据就不是12条
可串行(seriablizable)
可串行指的是: 该级别下事务无法并发执行,只能以串行的方式,这种方式不会产生幻读,但是性能最差
查看默认的隔离级别
show global variables like '%iso';