最低的隔离级别,一个事务还没提交时,它做的变更就能被别的事务看到。可能导致的问题是:
脏读:读取到其他事务未提交的数据。
大多数数据库系统的默认隔离级别(比如Oracle, PostgreSQL)。它满足了隔离的基本需求,一个事务只能看见已经提交的事务所做的改变。这种级别可以避免脏读的产生。可能导致的问题是:
不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。
在同一个事务内的查询都能看到一致的数据视图,也就是说,你如果在一个事务的两个不同时间点多次读取同样的数据,那么你会看到完全相同的内容。这种级别可以避免脏读和不可重复读的产生。可能导致的问题是:
幻读:在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。
最高的隔离级别,完全避免了脏读、不可重复读、幻读的问题。此级别可以通过锁表来实现,但是这种级别会有很大的性能开销,并发性能差,一般不会在实际应用中使用。
如果您喜欢我的文章,请点击下面按钮随意打赏,您的支持是我最大的动力。
最新评论