前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >mysql-innodb之锁

mysql-innodb之锁

原创
作者头像
爱学习的羊羊
发布2025-03-14 17:39:49
发布2025-03-14 17:39:49
420
举报

锁类型

一致性非锁定读

  • 事务读提交 读提交是指在同一个事务内读取最新提交的版本数据
  • 事务重复读 重复读是指同一个事务内读取到的数据都是事务开始的版本数据

一致性锁读取

  • 事务序列化 序列化是指事务内读取会对数据加行锁 select ..for update 读加写锁 select ..lock in share mode 读加共享锁

自增长与锁

定义:自增长计数器,表锁机制,插入只能排队,等待上一次的插入完成

缺点:插入只能排队完成,在并发插入量较大的情况下,插入性能较差

行锁

  • Record lock: 单个行记录上的锁
  • Gap lock: 间隙锁,锁定范围,但不包含记录本身
  • Next-key lock:Gap lock+record lock 锁定范围+记录本身,当条件为主键时,则锁退化为记录锁,否则则锁定聚簇索引的上一个值到下一个值之间,但不包含上一个值和下一个值

锁算法

幻读(Phantom problem)

  • 幻读是指在同一事务下,由于数据新增或者删除引起的两次读取不一致的问题
  • 幻读一般可依赖Next-key lock 来解决,保证了写操作上下的范围内不会有其他的数据插入,进而避免了幻读的发生
  • 幻读到的是事务已提交的版本

脏读 (dirty read)

  • 脏读是指读到了事务中未提交的数据,违反了事务的隔离性
  • 脏读的事务隔离级别时read uncommited

不可重复读

  • 不可重复读是指同一个事务下,由于数据update引起的两次读取数据不一致的问题

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 锁类型
    • 一致性非锁定读
    • 一致性锁读取
    • 自增长与锁
  • 行锁
  • 锁算法
    • 幻读(Phantom problem)
    • 脏读 (dirty read)
    • 不可重复读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档