innodb锁-共享锁排他锁

前言:
Shared and Exclusive Locks译称共享锁/排他锁,本文参考官方文档进行学习说明外加实验例子

数据库版本:

SELECT VERSION();
±-----------+
| version() |
±-----------+
| 5.6.34-log |
±-----------+

数据库引擎:

show variables like ‘%engine%’;
±---------------------------±-------+
| Variable_name | Value |
±---------------------------±-------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| storage_engine | InnoDB |
±---------------------------±-------+

根据版本信息参考官方文档:

1.MySQL 5.6 Reference Manual-InnoDB Shared and Exclusive Locks(共享锁-排他锁)

共享锁-排他锁

innodb实现了标准的行级锁,包括两种锁模式:S(共享锁)、X(排他锁)

InnoDB implements standard row-level locking where there are two types of locks, shared (S) locks and exclusive (X) locks.

(1)事务拿到某一行记录的共享S锁,才可以读取这一行;即锁读
(2)事务拿到某一行记录的排它X锁,才可以修改或者删除这一行;

A shared (S) lock permits the transaction that holds the lock to read a row.
An exclusive (X) lock permits the transaction that holds the lock to update or delete a row.

共享锁和排他锁的兼容矩阵:

SX
S兼容冲突
X冲突冲突

上面的兼容矩阵都是针对同一行记录进行测试得出的结论。

共享锁加锁方式:

select lock in share mode;

排他锁加锁方式:

select for update/ update/ delete

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值