MysqlInnodb锁
Posted 不要做程序员的小松鼠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MysqlInnodb锁相关的知识,希望对你有一定的参考价值。
mysqlInnodb锁
乐观锁
- 具体流程
- 读取数据
- 对数据操作
- 事务提交,校验数据读取后是否被修改
- 时间戳判断:数据更新同时更新时间戳
- 版本判断:数据更新升版
- 校验无误写入,否则回滚
- 特点:
- 实际上没有使用数据库的锁
- 适用于乐观的场景,及对数据竞争冲突较少的情况(读频繁)
悲观锁
-
共享锁(S)
- 大家都可以加锁,无论是否已经加了共享锁
- 加了锁之后,谁也不能修改,直到所有锁被释放
-
排他锁(X)
- 增删改默认加
- 加锁后其他线程不得对被加锁数据任何操作
-
行锁
- 锁定一行数据
- 根据主键索引锁定该行
- begin;
- select XXX from XXX where XXX=XXX for update;
- commit;
- 若无索引,则锁定整表
-
表锁
- 锁定一张表
-
特点
- 适用于写频繁的场景
以上是关于MysqlInnodb锁的主要内容,如果未能解决你的问题,请参考以下文章