`
hongwei3344661
  • 浏览: 29695 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

mysql悲观锁和乐观锁

 
阅读更多

mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。

共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。

排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和修改。

对于共享锁大家可能很好理解,就是多个事务只能读数据不能改数据,对于排他锁大家的理解可能就有些差别,我当初就犯了一个错误,以为排他锁锁住一行数据后,其他事务就不能读取和修改该行数据,其实不是这样的。排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。mysql InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,如果加排他锁可以使用select ...for update语句,加共享锁可以使用select ... lock in share mode语句。所以加过排他锁的数据行在其他事务种是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,但可以直接通过select ...from...查询数据,因为普通查询没有任何锁机制。

分享到:
评论

相关推荐

    Mysql悲观锁和乐观锁的使用示例

    主要给大家介绍了关于Mysql悲观锁和乐观锁使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    mysql 悲观锁与乐观锁的理解及应用分析

    本文实例讲述了mysql 悲观锁与乐观锁。分享给大家供大家参考,具体如下: 悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。 不要把他们与mysql中提供的锁机制(表锁,行锁,...

    MySQL中的悲观锁与乐观锁

    主要介绍了MySQL中悲观锁与乐观锁的相关资料,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下

    悲观锁和乐观锁.md

    所谓乐观锁,重视假设最好的情况,每次去拿数据都认为别人不会修改,所以不会上锁,但是会在更新时判断一下在此期间这个数据有没有更改,使用版本号机制和CAS算法实现,乐观锁适用于多读的应用类型,这样可以提高...

    mysql的乐观锁、悲观锁.md

    java,乐观锁,悲观锁详解释

    36谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

    36谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

    实例讲解MySQL中乐观锁和悲观锁

    乐观锁和悲观锁式并发控制主要采用的技术手段 悲观锁 在关系数据库管理系统中,悲观并发控制(悲观锁,PCC)是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作的每...

    SpringBoot整合MyBatis实现乐观锁和悲观锁的示例

    主要介绍了SpringBoot整合MyBatis实现乐观锁和悲观锁的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    MySQL锁机制,乐观锁,悲观锁等

    锁的定义:   数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变...写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。 一、悲观锁   顾名思义,就是对于数

    乐观锁悲观锁及事务及行锁表锁

    mysql锁,与事务,以及各种级别锁,和乐观锁悲观锁的研究使用

    SQL数据库系统原理(二)———乐观锁与悲观锁、MVCC、范式理论、SQL和NoSQL比较

    封锁的类型以及粒度,两段锁协议,隐式和显式锁定 封锁类型有两种:读写锁和意向锁 读写锁分类读锁(s锁)和写锁(x锁)。...乐观锁和悲观锁都是为了事务的并发控制。 乐观锁 悲观锁 目的 事务

    MySQL面试题(记得被问过的一些题目)

    什么是乐观锁和悲观锁? 乐观锁和悲观锁的区别? 乐观锁和悲观锁的使用场景? 什么是死锁? 解决死锁的机制有哪些? 发生死锁的场景有哪些? 什么是事务? 事务的特性与适用场景? 事务的隔离级别与适用场景?

    深入理解Yii2.0乐观锁与悲观锁的原理与使用

    主要介绍了深入理解Yii2.0乐观锁与悲观锁的原理与使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    常见(MySQL)面试题(含答案).docx

    数据库悲观锁和乐观锁的原理和应用场景? 如何做 MySQL 的性能优化? 索引是什么?MySQL为什么使用B+树,而不是使用其他?B+树的特点 创建索引时需要注意什么? CHAR和VARCHAR的区别? NOW()和CURRENT_DATE()有...

    轻松玩转MySQL之锁篇

    MySQL的锁主要分为乐观锁和悲观锁,乐观锁一般是程序自己实现,可以根据版本号或者时间戳字段实现 MySQL表级锁 表级锁由MySQL Layer层实现 MySQL 实现的表级锁定的争用状态变量 show status like 'table%'; table...

    MySQL数据库锁机制原理解析

    在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁...乐观锁和悲观锁不仅在关系数据库里应用,在Hibernate、Memcache等等也有相关概念。 悲观锁:也即悲观并发控制,Pessimistic Concur

Global site tag (gtag.js) - Google Analytics