美文网首页
InnoDB存储引擎的锁的算法有三种:

InnoDB存储引擎的锁的算法有三种:

作者: Devil兵 | 来源:发表于2019-07-08 17:29 被阅读0次

InnoDB存储引擎的锁的算法有三种:

Record lock:单个行记录上的锁

Gap lock:间隙锁,锁定一个范围,不包括记录本身

Next-key lock:record+gap 锁定一个范围,包含记录本身

相关知识点:

innodb对于行的查询使用next-key lock

Next-locking keying为了解决Phantom Problem幻读问题

当查询的索引含有唯一属性时,将next-key lock降级为record key

Gap锁设计的目的是为了阻止多个事务将记录插入到同一范围内,而这会导致幻读问题的产生

有两种方式显式关闭gap锁:(除了外键约束和唯一性检查外,其余情况仅使用record lock) A. 将事务隔离级别设置为RC B. 将参数innodb_locks_unsafe_for_binlog设置为1

相关文章

  • InnoDB存储引擎的锁的算法有三种:

    InnoDB存储引擎的锁的算法有三种: Record lock:单个行记录上的锁 Gap lock:间隙锁,锁定一...

  • 3.行级锁

    行级锁介绍 InnoDB存储引擎实现 一. InnoDB的行级锁,按照锁定范围来说,分为三种: 1.记录锁(Rec...

  • MySql锁问题

    一、InnoDB存储引擎的锁算法 1、Record lock 单个行记录上的锁,record locks 总是锁定...

  • SQL 规范

    基础规范 表存储引擎必须使用InnoDB MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)...

  • mysql规范

    一、基础规范【强制】使用InnoDB存储引擎解读:InnoDB存储引擎是MySQL默认存储引擎,支持事务和行级锁,...

  • MySQL-InnoDB行锁

    InnoDB的锁类型 InnoDB存储引擎支持行锁,锁类型有两种: 共享锁(S锁) 排他锁(X锁) S和S不互斥,...

  • 深入理解MySQL

    存储引擎 现在常用的存储引擎是InnoDB,以前常用的是MyISAM。 InnoDB 支持事务、支持行级锁、支持外...

  • MySQL的锁分类以及使用场景

    myisam存储引擎默认是表级锁innodb存储引擎默认是行级锁DBD存储引擎默认是页面锁表级锁:开销小,加锁快;...

  • 【原创】因酷数据库开发规范

    基本规范 所有表必须使用Innodb存储引擎Innodb存储引擎是Mysql5.6以后默认引擎支持事务,行级锁,更...

  • 文章总结(6)—数据库

    InnoDB和MyISAM存储引擎的区别 InnoDB使用的是行锁,MyISAM使用的是表锁; InnoDB支持事...

网友评论

      本文标题:InnoDB存储引擎的锁的算法有三种:

      本文链接:https://www.haomeiwen.com/subject/leuahctx.html