「每日一问」数据库事务隔离级别有哪些?

2022-04-22 12:24:39 浏览数 (1)

未提交读

未提交读(Read Uncommitted)级别中,事务中的修改即使没有提交,对其他事务也是可见的。读取到了事务没有提交的数据,就被成为脏读(Dirty Read)。事务没有提交的数据是很“脏”的,被读取到会引起很多问题。

提交读

提交读(Read Committed)级别中,一个事务开始时,只能查询到其他的事务已经提交的修改。也就是说,一个事务从开始到提交之前,任何的修改对其他的事务都是不可见的。

可重复读

可重复读(Repeatable Read)级别中,保证了在同一个事务中多次读取同样记录的结果是一致的。即使多次读取之间有其他事务对其结果做了修改,同一个事务中多次读取的结果也是一致的。

可串行化

可串行化(Serializable)级别中,强制事务串行执行,是最高的隔离级别。在这个级别中会在读取的每一行上加锁,可能导致大量的超时和锁竞争问题,所以在实际应用中很少被用到。除非,非常需要确保数据一致性并且不要求高并发,可以采用可串行化级别。

参考答案

未提交读、提交读、可重复读、可串行化

0 人点赞