数据库并发操作会带来什么问题
数据库并发操作会带来什么问题?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。
数据库的并发操作通常会带来丢失更新问题,不一致分析问题和“脏数据”的读出问题。
并发操作带来的数据不一致性
1、丢失修改(Lost Update)
2、不可重复读(Non-repeatable Read)
3、幻读(Phantom Read)
4、读“脏”数据(Dirty Read)
下面我们来分别看一下:
丢失修改:两个事务T-1和T-2读入同一数据并修改,T-2的提交结果破坏了T-1提交 的结果,导致T-1的修改被丢失。(修改-修改冲突)
不可重复读:事务1读取某一数据,事务2对其做了修改;当事务1再次读该数据 时,得到与前一次不同的值(读-更新冲突)
幻读:事务T-1按一定条件从数据库中读取了某些数据记录,事务T-2删除(插入) 了其中部分记录 ,当T-1再次按相同条件读取数据时,发现某些记录神秘地 消失(出现)了。(读-插入/删除冲突)
脏数据: 事务T-1修改某一数据,并将其写回磁盘;事务T-2读取同一数据后,T-1由 于某种原因被撤销这时T-1,已修改过的数据恢复原值,T-2读到的数据就 与数据库中的数据不一致T-2读到的数据就为“脏”数据,即不正确的数据(修 改-读冲突)
数据不一致性:由于并发操作破坏了事务的隔离性
并发控制的目的
要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。
关于数据库并发操作会带来的问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341