MySQL 共享锁和排他锁

本文深入解析MySQL中的共享锁和排他锁,这两种锁都属于悲观锁范畴。共享锁允许多个事务同时读取同一数据,但禁止修改;排他锁则确保数据在锁定期间只能被持有锁的事务读取和修改,阻止其他事务获取任何类型的锁。

MySQL 共享锁和排他锁

MySQL 的共享锁和排他锁都属于悲观锁(参考:乐观锁和悲观锁

共享锁

共享锁又称读锁,简称 S 锁,多个事务可以同时为同一数据加共享锁。数据被添加共享锁后可以被多个事务同时读取,但是无法被修改。

MySQL 共享锁实现:

SELECT ... LOCK IN SHARE MODE

排他锁

排他锁又称写锁,简称 X 锁,排他锁不能与其它锁共存,一旦一个事务获取了某一数据的排他锁,则其它任何事务都无法再获取该数据的其它锁,包括共享锁和排他锁。只有获取到排他锁的事务本身可以对该数据执行读取和修改操作。

MySQL 排他锁实现:

SELECT ... FOR UPDATE

MySQL InnoDB 存储引擎会自动为 INSERTUPDATEDELETE 操作涉及的数据添加排他锁,SELECT 默认不添加任何锁。

转载于:https://my.oschina.net/u/3190679/blog/2209023

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值