请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

排它锁与共享锁

加了共享锁的记录,其它事务可以再对这些记录加共享锁,但是这些事务只能查询这些记录,而不能做修改;
加了排它锁的记录,其它事务不可以再对这些记录加排它锁,但是这些事务也只能查询这些记录,而不能做修改;
请问:
那感觉加共享锁或排它锁效果是一样的呀,这里有些迷惑。

正在回答 回答被采纳积分+3

1回答

神思者 2019-10-10 22:47:49

参考一下这个帖子,https://www.jianshu.com/p/bd3b3ccedda9

1 回复 有任何疑惑可以回复我~
  • 提问者 慕尼黑8734558 #1
    帖子:如果事务T对数据A加上排它锁,只有事务T可以对A进行读取和修改,其他任何事务都不能对A进行读取和修改。
    
    课堂上演示其它事务好像可以对A读取呀。
    回复 有任何疑惑可以回复我~ 2019-10-10 22:57:59
  • 提问者 慕尼黑8734558 #2
    一个事务对数据不管是加了X锁还是S锁,其它事务都不能对数据进行修改。
    我自己测试了一下,有点明白了,总结一下:
    1.不管是S锁还是X锁,我们都不能主动加在增删改操作语句上,
    所以S锁和X锁是针对查询语句的(查询语句默认没有加锁),如果加了锁,就能保证了一个事务在查询数据时,这些数据不会被其它事务所修改。
    2. 如果事务T的查询语句对数据加了S锁,其它事务的查询语句加了S锁能查出数据,但加了X锁就要等到事务T释放S锁了;
       如果事务T对数据加了X锁,其它事务的查询语句如果加了锁(x或s锁)就要等待事务T释放了X锁。
    回复 有任何疑惑可以回复我~ 2019-10-10 23:42:32

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信