MysqlInnodb锁

mac2025-02-15  9

MysqlInnodb锁

乐观锁

具体流程 读取数据对数据操作事务提交,校验数据读取后是否被修改 时间戳判断:数据更新同时更新时间戳版本判断:数据更新升版 校验无误写入,否则回滚 特点: 实际上没有使用数据库的锁适用于乐观的场景,及对数据竞争冲突较少的情况(读频繁)

悲观锁

共享锁(S)

大家都可以加锁,无论是否已经加了共享锁加了锁之后,谁也不能修改,直到所有锁被释放

排他锁(X)

增删改默认加加锁后其他线程不得对被加锁数据任何操作

行锁

锁定一行数据根据主键索引锁定该行 begin;select XXX from XXX where XXX=XXX for update;commit; 若无索引,则锁定整表

表锁

锁定一张表

特点

适用于写频繁的场景
最新回复(0)