读未提交
在这个级别下,所有事务都可以读取别的事务中未提交的数据,会在脏读问题,所以在项目中基本不用,安全型太差
读已提交
这是大多数数据库默认的隔离级别,但不是mysql的默认隔离级别;这个级别只能满足简单的隔离要求。一个事务只能看见已经提交事务所做的改变,还是会产生脏读问题;这时由于一个事务可以看到别的事务已经提交的数据,后面就可能产生不可重复读和虚读等问题;
可重复读
这个是mysql的默认隔离级别,他确保了一个事务中多个实例在并发读取数据是会读取到一样的数据;
不过在来另一方面会出现幻读。简单说说幻读,就是用胡读取某一范围的数据行时,另一事务又在该范围内插入新行,当用户再读取该范围的数据行时,会发现有新的幻影行。
不过innodb和falcon存储引擎通过多版本并发控制机制解决了该问题。
可串行化
事务的最高级别,他强制事务排序,使之不可能相互冲图,从而解决幻读问题。简而言之,他是在每个读取的数据上加共享锁。在这个级别,可能导致大量超时现象和锁竞争,但一般为了提升程序的吞吐量不会采用这个。