共享锁 & 排它锁 & 意向锁

共享锁 & 排它锁 & 意向锁,第1张

共享锁:共享锁是读锁,是在执行读取 *** 作的时候创建的。如果事务 T 对 数据 A 添加了共享锁,那么其他事务只能再对数据 A 添加 共享锁而不能添加其他类型的锁,对于已经添加了共享锁的事务,只能执行读 *** 作,而不能执行写 *** 作。共享锁的使用方式需要在查询语句后面添加 LOCK IN SHARE MODE

排它锁:排它锁是写锁,如果事务 T 对 数据 A 添加排它锁,那么其他事务就不能再添加其他类型的锁,已经添加了排它锁的事务,既能执行读 *** 作也能执行写 *** 作,排它锁的使用方式需要在查询语句中添加 FOR UPDATE

意向锁是表级锁,它主要用于在一个事务中表明下一行将要被请求的锁类型,INNODB 中的有两个表锁:意向共享锁、意向排它锁

意向共享锁:表明事务准备给数据行添加一个共享锁,一个数据行在被添加共享锁之前首先需要获取当前表的意向共享锁

意向排它锁:表明事务准备给数据行添加一个排它锁,一个数据行在被添加排它锁之前首先需要获取当前表的意向排它锁

意向锁是 INNODB 自动添加的,不需要用户干预

一般来说需要加锁。如过你的程序允许“脏读”也可以不加锁。所谓“脏读”是指一个线程正在修改共享变量,在没有完成修改情况,另一个线程读取了该变量,这时,获取的不是被修改共享变量的最终值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11672872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存