1.read uncommitted 读未提交。可以读取未提交的数据。比如:我有一个账户里面有1000元,对方给我打了1000还未提交,我这时查看会有2000,我以为收到了,放心睡觉去了,可是对方他这1000给回滚了。实际我账户还是1000 这是脏读
2.read committed 读提交。读到数据是已经提交过的数据。还是上面的例子。对方给我打1000如果不提交。我查看我的账户余额是1000,只有对方提交了我的账户才会变成2000。好了,我现在有2000了,我准备把这2000存到小金库里,可是这个时候我老婆网上买东西花了500,在我转账之前提交了,我转账时发生余额不足。这就是不可重复读。
3.Repeatable read 重复读。 吸取上次教训。我把隔离级别升级了。当我查看账户余额要转账的时候事务就已经开启了,这种情况下,我老婆就不能在我查看的时候买东西了。但是会出现幻读 幻读是指两次读取的结果集不一样,是由于一个事务内前后两次读取之间有其他事务的插入操作。
4.序列化 所有的事务按着顺序一个一个进行。