数据库中的隔离属性

隔离控制如何以及何时在数据库中进行更改

隔离是数据库事务属性的组成部分。 它是ACID的第三个属性(原子性,一致性,隔离性耐久性) ,这些属性确保数据一致和准确。

隔离是数据库级别的属性,用于控制如何以及何时进行更改以及它们是否彼此可见。 隔离的目标之一是允许多个事务同时发生而不会影响彼此的执行。

隔离是如何工作的

例如,如果Joe在Mary发布不同事务的同时针对数据库发出事务,则两个事务都应以隔离的方式在数据库上运行。 数据库应该在执行Mary's之前执行Joe的整个事务,反之亦然。 这可以防止Joe的事务读取作为Mary事务的一部分副作用而产生的中间数据,这些事务最终不会被提交给数据库。 请注意隔离属性不能确保哪个事务将首先执行,只是它们不会互相干扰。

隔离级别

有四个级别的隔离:

  1. 可串行化是最高级别,这意味着事务将在另一个事务启动之前完成。
  2. 可重复读取允许交易在交易开始后即被访问,即使交易尚未完成。
  3. 读取提交允许数据在数据提交到数据库之后访问,但不是在那之前。
  4. 未提交的读取是最低级别的隔离,并允许在更改之前访问数据。