数据库的并发操作可能带来哪些问题


本文摘自PHP中文网,作者V,侵删。

数据库的并发操作通常会带来丢失更新问题,不一致分析问题和“脏数据”的读出问题。

相关知识点介绍:

事务是并发控制的基本单位。

(相关教程推荐:mysql教程)

并发操作带来的数据不一致性

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读到的数据就为“脏”数据,即不正确的数据(修 改-读冲突)

数据不一致性:由于并发操作破坏了事务的隔离性

并发控制的目的

要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。

以上就是数据库的并发操作可能带来哪些问题的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

navicat for mysql定时备份数据库及数据恢复操作

删除字段的sql语句是什么

数据库中的数据表由什么组成?

数据库数据类型有哪些

redis为什么默认建立16个数据库

mysql数据库如何升级脚本制作过程分享

myeclipse连接mysql数据库详细步骤

数据库管理系统属于应用软件吗?

数据库对象包括哪六个?

使用navicat怎么导出整个数据库

更多相关阅读请进入《数据库》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...