zoukankan      html  css  js  c++  java
  • 乐观锁 与 悲观锁 来解决数据库并发问题

    1. 背景

    学习、工作用了不少数据库写sql还是不成问题。

    在解决数据库并发冲突时,更多的是在程序编程逻辑中加锁,来解决业务中可能的数据库并发更新问题。

    并不是使用数据库或者ORM框架来处理并发冲突。悲观锁、乐观锁 是一种解决数据库并发的思路。

    2. 悲观锁与乐观锁介绍

             悲观锁:持"悲观态度",假设会发现并发更新冲突,屏蔽一切可能违反数据完整性的操作。在更新操作时,先进行加锁(使用数据库提供的锁机制)来从底层保证数据的正确性。

             乐观锁:持"乐观态度",假设多事务在处理时不会彼此相互影响。各事务在不产生锁的情况下处理各自影响的数据,在提交数据更新之前,每个事务先检查该事务更改数据后,有没有其他事务又修改了该数据。如果其他事务有更新的话,正在提交的事务会进行回滚。返回错误信息,用于可以自行处理。

             悲观锁适用于更新操作出现并发更新数据多的情况,可以防止数据丢失、脏读。乐观锁,反之。

  • 相关阅读:
    C# AtomicInt
    Ubuntu16.04或18.04上安装QQ微信迅雷
    Git强制拉取覆盖本地 Pull force
    ulimit限制打开的文件数量
    centos 7.x设置守护进程的文件数量限制
    Apache Doris通过supervisor进行进程管理
    CentOS7 安装supervisor守护进程管理器
    fdisk 分区
    linux i2c tools
    ubuntu12.04 登录黑屏
  • 原文地址:https://www.cnblogs.com/xudong-bupt/p/8614997.html
Copyright © 2011-2022 走看看