zoukankan      html  css  js  c++  java
  • 数据库锁之悲观锁和乐观锁的简单理解

    一、锁机制分为悲观锁和乐观锁

    理解:

    • 悲观锁:对数据保持一种比较悲观的想法,数据肯定会出现冲突(多个线程操作一条数据),在处理数据时,将数据锁住,防止其他操作。
    • 乐观锁: 与悲观锁持相反的态度,一般认为数据不会冲突,一般是在数据进行提交更新的时候才进行判断是否允许修改。

    二、具体实现方式

    实现:

    悲观锁:

    select * from user where name= 'tony' for update
    

    乐观锁:

    1. 在表中增加一个Version字段或者一个标识字段。
    2. 在更新之前先获取当前Version或者标识字段数据。
    3. 在更新数据时,where条件增加Version字段或者标识字段的值进行更新,相同则更新成功。
    4. 如果更新失败,则返回给客户端更新失败·····

    总结:

    具体使用悲观锁还是乐观锁,要根据当前的场景进行选择,如果不允许出现脏读的情况下,并且并发量不大的情况下,可以使用悲观锁(悲观锁会有性能问题)。如果并发量高的情况下,建议选择乐观锁。

  • 相关阅读:
    Apache安装与属性配置
    Web服务及http协议
    转-httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程
    LAMP理论整理
    Rhel6-csync配置文档
    转载Eclipse中Maven WEB工程tomcat项目添加调试
    转载--eclipse git插件安装
    l连接远程桌面
    Aphache VFS
    JMS-activeMQ
  • 原文地址:https://www.cnblogs.com/tonyzt/p/15739771.html
Copyright © 2011-2022 走看看