《高性能MySQL》阅读 -MySQL存储引擎之innoDB

MySQL存储引擎

承接:《高性能MySQL》阅读 Mysql架构和历史 二、
20210108 22:00-24:00阅读整理搬运
25.【太黄君】诗号:
欲知神器十八种,脚担黄土十八层。

  1. MySQL存储引擎之innoDB
    1. InnoDB存储引擎:是MySQL的默认存储引擎;InnoDB 通过 MVCC 和 NEXT-KEY Locking 间隙锁策略,解决了在可重复读的事务隔离级别下出现幻读的问题
      1. MVCC:多版本并发控制(Mutilversion Concurrency Control),
      2. 行锁定方式:
        1. 行锁(Recode Lock):锁直接加载索引记录上边,封锁该行的索引记录,select * from table where id=2 for update : id必须是唯一索引或者主键,这样才会触发行锁,否则会退化为一种异变间隙锁(Next-key lock)
        2. 间隙锁(Gap Lock):间隙锁是基于非唯一索引,锁加在不存在的空间,锁定一段范围内的索引记录(是一个开区间),可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间
        3. Next-key Lock: 行锁与间隙锁组合起来用叫做Next-key Lock.它的间隙锁锁定区间是一个左开右闭的区间;
        4. SUMMARY:(1)InnoDB中的行锁的实现依赖于索引,一旦某个加锁操作没有使用到索引,那么该锁就会退化为表锁;(2)记录锁存在于包括主键索引在内的唯一索引中,锁定单条索引记录(3间隙锁存在于非唯一索引中,锁定开区间范围内的一段间隔,它是基于临键锁实现的)(4)临键锁存在于非唯一索引中,该类型的每条记录的索引上都存在这种锁,它是一种特殊的间隙锁,锁定一段左开右闭的索引区间
      3. 索引类型:
        1. normal-普通索引
        2. unique:唯一索引
        3. full textl:全文搜索索引
        4. 主键
        5. 单列,双列
        6. 多列
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

booth-ZDH

爪哇一生

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值