当前位置: 首页 > 后端技术 > Java

《高频面试题》中数据库事务的隔离级别是多少?

时间:2023-04-01 17:02:56 Java

未提交读在未提交读(ReadUncommitted)级别,事务中的修改即使没有提交,其他事务也是可见的。读取未被事务提交的数据称为脏读(DirtyRead)。事务未提交的数据非常“脏”,如果读取会导致很多问题。Committedread在ReadCommitted级别,当一个事务开始时,只能查询其他事务已经提交的修改。也就是说,一个事务从start到commit的任何修改对其他事务都是不可见的。可重复读在可重复读(RepeatableRead)级别,保证在同一个事务中多次读取同一条记录的结果是一致的。即使其他事务在多次读取之间修改了它们的结果,同一事务中多次读取的结果也是一致的。Serializable在可序列化(Serializable)级别,它强制事务串行执行,是最高的隔离级别。在这个层次上,每读取一行就加一个锁,可能会造成很多超时和锁竞争问题,所以在实际应用中很少使用。除非非常需要保证数据的一致性,对并发性要求不高,否则可以使用序列化级别。参考答案uncommittedread,committedread,repeatableread,serializable