zoukankan      html  css  js  c++  java
  • 更新丢失问题

    问题描述:
      两个线程基于同一个查询结果进行修改,后修改的人会将先修改人的修改覆盖掉.

    悲观锁:

      悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时就加上排他锁
     手动加排它锁:
      例:
        Select stat from xxx where id = 1 for update;
        缺点:查询效率低下

    乐观锁:

      乐观锁会乐观的认为每次查询都不会造成更新丢失.利用一个版本字段进行控制
      表中加入版本字段version
      例:
        update order set stat=1 and version = version+1
        where id = 1 and version =0 ;
    这里写图片描述

    使用建议:

    查询非常多,修改非常少 —————> 使用乐观锁

    修改非常多,查询非常少 —————> 使用悲观锁

  • 相关阅读:
    [NOI2008] 糖果雨
    [NOI2006] 神奇口袋
    [NOI2014] 购票
    Prince and Princess HDU
    Network POJ
    CodeForces
    Codeforces Global Round 12
    Codeforces Round #688 (Div. 2)
    [USACO05DEC]Layout G
    # Technocup 2021
  • 原文地址:https://www.cnblogs.com/shiguangmanbu2016/p/5932897.html
Copyright © 2011-2022 走看看