数据库并发操作会带来哪些问题及原因
2017-03-20 20:52
405 查看
(1)丢失更新
当两个或多个事物读入同一数据并修改,会发生丢失更新问题,即后一个事物更新的结果被前一事务所做更新覆盖 即当事务A和B同事进行时,事务A对数据已经改变但并未提交时B又对同一数据进行了修改(注意此时数据是A还未提交改变的数据),到时A做的数据改动丢失了
(2)不可重复读
当两个数据读取某个数据后,另一事务执行了对该数据的更新,当前一事务再次读取该数据(希望与第一次读取的是相同的值)时,得到的数据与前一次的不一样,这是由于第一次读取数据后,事务B对其做了修改,导致再次读取数据时与第一次读取的数据不想同
(3)读‘脏数据’
当一个事务修改某个数据后,另一事务对该数据进行了读取,由于某种原因前一事务撤销了对改数据的修改,即将修改过的数据恢复原值,那么后一事务读到的数据与数据可得不一致,称之为读脏数据
注意:还有一个叫“幽灵数据” 幽灵数据与脏数据类似,不过幽灵数据是指事务提交之后读到的数据,但是在读取之后又进行了对前一事务的恢复,而脏数据是指并未提交前读取的数据
当两个或多个事物读入同一数据并修改,会发生丢失更新问题,即后一个事物更新的结果被前一事务所做更新覆盖 即当事务A和B同事进行时,事务A对数据已经改变但并未提交时B又对同一数据进行了修改(注意此时数据是A还未提交改变的数据),到时A做的数据改动丢失了
(2)不可重复读
当两个数据读取某个数据后,另一事务执行了对该数据的更新,当前一事务再次读取该数据(希望与第一次读取的是相同的值)时,得到的数据与前一次的不一样,这是由于第一次读取数据后,事务B对其做了修改,导致再次读取数据时与第一次读取的数据不想同
(3)读‘脏数据’
当一个事务修改某个数据后,另一事务对该数据进行了读取,由于某种原因前一事务撤销了对改数据的修改,即将修改过的数据恢复原值,那么后一事务读到的数据与数据可得不一致,称之为读脏数据
注意:还有一个叫“幽灵数据” 幽灵数据与脏数据类似,不过幽灵数据是指事务提交之后读到的数据,但是在读取之后又进行了对前一事务的恢复,而脏数据是指并未提交前读取的数据
相关文章推荐
- 数据库中的并发操作带来的一系列问题
- 【数据库】数据库并发操作(一)数据库并发操作带来的问题
- 数据库并发操作带来的问题以及解决方案
- 数据库中的并发操作带来的一系列问题及解决方法
- 数据库并发性带来了哪些问题?
- 数据库事务并发带来的问题
- 数据库---并发控制及其带来的问题丢失修改,读脏数据,不可重复读及解决(程序员级)
- JS哪些操作带来reflow?常见问题优化
- 数据库并发操作带来的数据不一致性
- 数据库-并发访问带来的问题
- 【转载】数据库大并发操作要考虑死锁和锁的性能问题
- 数据库事务并发带来的问题、及并行
- 数据库并发操作的一致性问题
- 解决关于多客户端操作数据库并发问题
- 数据库事务并发带来的问题
- 数据库大并发操作要考虑死锁和锁的性能问题
- 转-数据库应用基础系列-第2章 并发操作的一致性问题 (2)
- 数据库大并发操作要考虑死锁和锁的性能问题
- 转-数据库应用基础系列-第2章 并发操作的一致性问题 (1)
- 项目中遇到的[数据库并发]操作问题