共享锁和排他锁

Crq
Crq
Crq
1228
文章
0
评论
2022年6月22日00:59:18
评论
468 605字阅读2分1秒

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...查询数据,因为普通查询没有任何锁机制。

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2022年6月22日00:59:18
  • 转载请注明:https://www.cncrq.com/10252.html
求最小函数依赖解法与例题 关系数据库理论

求最小函数依赖解法与例题

算法: 1.将依赖集F的右侧分解为只有一个属性 2.去掉冗余项:从第一个函数依赖X -> Y开始,假设将其从F中去掉(从F里面删除,不去推导他的关系,如果删除成立,下一次求闭包也不能算他的关系,...
函数依赖 关系数据库理论

函数依赖

总述 函数依赖,提到这个概念我们有时候分不清楚它的关系,总结是一个将知识转化为自己东西的一个方法。现在咱们一起来”分解“它:函数依赖。 分述 一、函数依赖关系 1.数据依赖 数据依赖通常包括函数依赖和...
数据库设计六个阶段 关系数据库理论

数据库设计六个阶段

数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。 各阶段任务如下: ①需求分析:准确了解与分析用户需求( 包括数据与处理)。 ②概念结构设计:...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: