发展历程 什么是隔离? -技术百科的定义

什么是隔离? -技术百科的定义

目录:

Anonim

定义-隔离是什么意思?

在数据库的上下文中,隔离指定操作中实现的更改何时以及如何对其他并行操作可见。 事务隔离是任何事务系统的重要组成部分。 它处理由查询检索到的数据的一致性和完整性,而查询不受其他用户操作的影响。 数据库获取数据锁以保持高度的隔离。

技术百科解释隔离

定义了许多隔离级别以控制数据锁定的程度。 高度隔离可能会导致锁定系统的开销,从而造成死锁。 四个主要的隔离级别是:未提交读:此级别处理脏读,其中读数据与表或查询的其他部分不一致且未提交。 在这里,数据直接从表块读取,而无需任何验证,确认和处理。 因此,数据是尽可能脏的。 读取已提交:在这种情况下,查询返回的行是查询开始时已经提交的行。 由于在查询开始之前已完成提交,因此结果不会显示在查询输出中。 重复读取:在这种情况下,查询返回的行在事务开始时提交。 所做的更改不存在于事务中,因此不会出现在查询结果中。 可序列化:在此级别上,事务以完全隔离的方式进行,一个接一个地连续进行。 诸如Oracle和Postgre SQL之类的数据库有时不保证事务的串行顺序,但确实支持快照隔离,其中事务中的所有读取都是数据库的一致快照,并且仅当没有更新与自快照以来进行的其他并发更新发生冲突时,事务提交才会提交。 快照隔离所允许的异常可能会通过交错维护一致性的事务而导致违反数据一致性。 这些异常可以通过引入更新冲突或人为锁定来消除。 所有数据库都允许用户设置其默认隔离级别。 选择的完美隔离级别可防止应用程序引入错误,例如脏读,可重复读和幻像读。 当第一个事务读取第二个事务所做的未提交的更改时,它将导致脏读。 如果在同一事务中再次读取数据后,读取的数据保持不变,则它是可重复读取。 当插入之前事务指出新添加的记录时,就会发生幻像读取。 不同的数据库锁隔离级别处理如下:读取锁:读取锁可防止更改事务期间读取的数据,直到事务结束为止,从而消除了重复读取的情况。 其他事务可以读取此数据,但不提供写或更改访问权限。 写锁:写锁可防止其他事务更改数据,直到事务结束为止。 独占写锁:独占写锁可防止其他事务读取或更改数据,直到当前事务结束为止。 快照:快照是事务开始时数据的冻结视图。 它可以防止脏读,不可重复读和幻像读。 此定义是在数据库的上下文中编写的
什么是隔离? -技术百科的定义