隔离级别从高到低:可串行化(serializable)——》可重复读(repeatable read)——》读已提交(read committed)——》读未提交(read uncommitted)
- 读未提交(Read uncommitted): 顾名思义,就是一个事务可以读取另一个未提交事务的数据。【最低的隔离级别,什么都不需要做,一个事务可以读到另一个事务未提交的结果。所有的并发事务问题都会发生。】
事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。但是老板及时发现了不对,马上回滚差点就提交了的事务,将数字改成3.6万再提交。
分析:实际程序员这个月的工资还是3.6万,但是程序员看到的是3.9万。他看到的是老板还没提交事务时的数据。这就是脏读。
- 读已提交(Read committed): 顾名思义,就是一个事务要等