数据库的四种事务隔离级别
众所周知,数据库有四种事务隔离的级别,网上看了好几篇关于四种隔离级别的描述和举例,但是总是在表达和理解上对新人很不友好;
所以结合自身的理解进行了一下描述:
四种事务隔离级别:
1、读未提交:B事务可以读取到A事务未提交添加的和修改的数据,当A事务回滚后,造成脏读
2、读已提交(不可重复读)【大部分数据库的默认隔离级别,如oracle和sql server】:B事务读取不到A事务未提交的数据,但是可以修改A事务访问的数据,导致A事务执行前和执行后读取的数据不一致,造成不可重复读
3、可重复读【mysql数据库的隔离级别】:A事务进行时,B事务不能够读取和修改A事务相关联的数据,但是可以在A事务的业务相关的数据表里添加数据,导致幻读
4、可串行化:A事务在进行时,将A事务操作的所有相关表全部锁起来,B事务不能对表数据进行任何操作,不会造成任何读数错误,但是效率极低,一般不会有数据库使用这个级别