美文网首页
mysql 乐观锁

mysql 乐观锁

作者: 就叫basi | 来源:发表于2019-09-30 17:56 被阅读0次

    为什么加锁
    在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。

    加锁的目的是在同一个时间只有一个事务在更新数据,通过锁独占数据的修改权。

    乐观锁前提是假设可能会发生并发抢占资源,只有在提交操作的时候要检查是否违反数据完整性

    (悲观锁即是假设一定会有并发抢占资源,强行独占资源,在整个数据处理过程中,将数据处于锁定状态。)

    实现方式:
    通过增加version字段
    通过增加时间戳字段

    具体实现(以第二种方式为例)

    前提条件我有一个 CREATE_TIME 或者 MODIFY_TIME。
    每次update时,首先取出该条记录的MODIFY_TIME作为where中的判断条件

        UPDATE
        User 
        SET
        User.IS_MAN = 1
        User.MODIFY_TIME = NOW()
        WHERE
        User.id = 'F53BB908206A'
        User.MODIFY_TIME = "2019-09-30 13:02:27"
    

    version字段即为每次update时
    set version = version + 1

    vans.png

    相关文章

      网友评论

          本文标题:mysql 乐观锁

          本文链接:https://www.haomeiwen.com/subject/wykhpctx.html