首页 > 数据库技术 > 详细

丢失更新 mysql

时间:2021-08-30 00:23:21      阅读:19      评论:0      收藏:0      [点我收藏+]

一、定义

在事务的隔离级别内容中,能够了解到两个不同的事务在并发的时候可能会发生数据的影响。细心的话可以发现事务隔离级别章节中,脏读、不可重复读、幻读三个问题都是由事务A对数据进行修改、增加,事务B总是在做读操作。如果两事务都在对数据进行修改则会导致另外的问题:丢失更新。

二、解决

  1. 悲观锁:认为两个事务更新操作一定会发生丢失更新
    • 解决:通过在语句后边添加for update来实现行级上锁,所以又称为“行级锁”,例如:select * from t_account t wheret.id=‘1’ for update;
  2. 乐观锁:认为事务不一定会产生丢失更新,让事务进行并发修改,不对事务进行锁定
    • 解决:由程序员自己解决,可以通过给数据表添加自增的version字段或时间戳timestamp,进行数据修改时,数据库会检测version字段或者时间戳是否与原来的一致,若不一致,抛出异常或者重新查询

丢失更新 mysql

原文:https://www.cnblogs.com/zzqqyy/p/13754327.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!