事务的隔离级别
简单介绍事务里常见的4种隔离级别,未提交读、读已提交、可重复读和串行读
未提交读(Read Uncommitted)
允许脏读,也就是可能读取到其他事务中更新了,但是还没有提交的数据。
读已提交(Read Committed)
只能读取到已经提交的数据。
可重复读(Repeated Read)
在同一个事务内,同一查询语句经过多次执行,得到的结果都会和事务第一次指定的查询结果保持一致。这个事务隔离级别是InnoDB的默认隔离级别。
在SQL标准中,这个隔离级别解决了不可重复读问题,但是还会存在幻读情况,但是InnoDB为了解决幻读引入的一种锁机制,叫间隙锁。
串行读(Serializable)
完全串行化的读,每次读数据都需要获得表级共享锁,读写相互都会阻塞。是一种性能很低的隔离级别。