返回数说广场 #日有所学#
0
数据并发和一致性介绍
在单用户数据库中,一个用户可以修改数据,而不用担心其他用户同时修改相同的数据。但是,在多用户数据库中,多个并发事务中的语句可能会更新相同的数据。同时执行的事务必须产生有意义且一致的结果。
多用户数据库必须提供以下内容:
保证用户可以同时访问数据(数据并发)
保证每个用户看到一致的数据视图(数据一致性),包括用户自己的事务和其他用户提交的事务所做的可见更改
为了描述事务并发运行时的一致事务行为,数据库研究人员定义了一种称为可串行化的事务隔离模型。可序列化事务在一个环境中运行,使得它看起来好像没有其他用户正在修改数据库中的数据。
虽然事务之间的这种隔离程度通常是可取的,但以可序列化模式运行许多应用程序会严重影响应用程序的吞吐量。并发运行的事务的完全隔离可能意味着一个事务不能执行插入到另一个事务正在查询的表中。简而言之,现实世界的考虑通常需要在完美的事务隔离和性能之间进行折衷。
Oracle 数据库通过使用多版本一致性模型和各种类型的锁和事务来维护数据一致性。这样,数据库可以将一个数据视图呈现给多个并发用户,每个视图都与一个时间点保持一致。由于不同版本的数据块可以同时存在,因此事务可以读取查询所需时间点提交的数据版本,并返回与单个时间点一致的结果。
0
0 394
分享
评论
热门数说


