God_zmd 2021-03-08 09:54 采纳率: 59.2%
浏览 147
已结题

悲观锁和乐观锁是不是mysql数据库默认带的锁

悲观锁和乐观锁是不是mysql数据库默认带的锁

  • 写回答

5条回答 默认 最新

  • 规则边缘 2021-03-08 10:35
    关注

    1. 锁机制主要是针对读写操作的原子性。

    2. 假设有两个事务执行同样的操作,读取数据、对数据进行处理、写入数据。事务A执行{读取数据},切换为事务B执行{读取数据、对数据进行处理、写入数据}。再切回事务A执行{对数据进行处理、写入数据}。就会发现事务A把事务B的操作覆盖掉了。

    3. 悲观锁就是悲观的认为上述冲突发生的概率较高,就是事务在执行{读取数据}操作时,就对【数据】进行{加锁}操作,不允许其它事务去执行{加锁,写入数据}的操作。{加锁}操作是需要耗费资源的,如果冲突发生的概率较低,是不划算的。MySQL的加锁{悲观锁}操作可以通过select .... for update语法实现。

    4. 乐观锁是乐观的认为上述冲突发生的概率较低,就是在表中约定一个版本标志字段,每次变更时去修改这个版本标志(可以是一个递增版本号,也可以是时间戳)。每个事务执行{读取数据}操作时,会读取到这个字段,执行{写入数据}操作时,判断版本标志是否发生改变(通过where条件判断即可),如果有变更,应用程序就重新执行{读取数据、对数据进行处理、写入数据}操作或者退出。MySQL本事是没有乐观锁这个概念的,需要应用程序自己去实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日

悬赏问题

  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义