• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > 数据库中的乐观锁与悲观锁

数据库中的乐观锁与悲观锁

作者:只有想不到没有做不到,程序的力量。。。 字体:[增加 减小] 来源:互联网 时间:2017-09-02

只有想不到没有做不到,程序的力量。。。通过本文主要向大家介绍了悲观锁,乐观锁,数据库等相关知识,希望本文的分享对您有所帮助

一、前言 在多用户的环境中,经常会出现多个用户同对一条记录进行修改,这时就不可避免的产生冲突。这也是并发场景中经常会遇到的问题。比较常见的冲突有:丢失更新与脏读。一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失,如用户把A的值由6变成2,用户B把2变成6.此时对于用户A来说,他的修改是无效的;当一个事务读取其它完成一半事务的记录时,就会发生脏读取。如用户A,B看到的值都是6,用户B把值改成2,此时A用户读到的仍是6。为了解决上述问题,需要引入并发控制,目前比较常见的并发控制就是加锁。当一个用户锁住数据库中的某个对象时,其他用户就不能再访问该对象。加锁对并发访问的影响体现在锁的粒度上。比如,放在一个表上的锁限制对整个表的并发访问;放在数据页上的锁限制了对整个数据页的访问;放在行上的锁只限制对该行的并发访问。可见行锁粒度最小,并发访问最好,页锁粒度最大,表锁介于2者之间。 二、悲观锁与乐观锁 。    乐观锁则认为其他用户企图改变你正在更改的对象的概率是很小的,因此乐观锁直到你准备提交所作的更改时才将对象锁住,当你读取以及改变该对象时并不加锁。可见乐观锁加锁的时间要比悲观锁短,乐观锁可以用较大的锁粒度获得较好的并发访问性能。但是如果第二个用户恰好在第一个用户提交更改之前读取了该对象,那么当他完成了自己的更改进行提交时,数据库就会发现该对象已经变化了,这样,第二个用户不得不重新读取该对象并作出更改。这说明在乐观锁环境中,会增加并发用户读取对象的次数。 三、两种锁使用的选择

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 数据库中的乐观锁与悲观锁

相关文章

  • 2017-05-11数据库正规化和设计技巧
  • 2017-05-11NoSQL数据库的分布式算法详解
  • 2017-05-11数据库查询优化(主从表的设计)
  • 2017-05-11ADO,OLEDB,ODBC,DAO,RDO的区别说明
  • 2017-08-22Mybatis延迟加载
  • 2017-05-11收缩数据库不变小的解决方法
  • 2017-05-11大数据量时提高分页的效率
  • 2017-05-11当数据库变慢时的解决方法
  • 2017-05-11sql注入之新手入门示例详解
  • 2017-05-11sql注入之必备的基础知识

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 关于数据库设计中主键问题的思考
    • 分享三种高效率SQL语句分页方法
    • 特殊的存储过程-触发器概述
    • 一个查询的SQL语句请教,希望能够用一条SQL语句得到结果
    • 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)
    • sql2005可实时监测数据库版本控制SQL的触发器
    • SQL注入详解(扫盲篇)
    • ADO.NET数据库访问技术
    • 以前架征途时的合区的SQL语句代码备份
    • SQL SERVER 里的错误处理(try catch)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有