当前位置: 首页 > news >正文

【mysql】锁机制 - 2.行锁间隙锁临键锁

MySQL锁机制详解:行锁、间隙锁与临键锁🔒

MySQL的锁机制是保证数据一致性的重要手段,今天我们来深入探讨三种重要的锁类型:行锁、间隙锁和临键锁。

行锁(RecordLock)📌

行锁是最基本的锁类型,它锁定索引记录本身。当使用主键或唯一索引进行精确查询时,MySQL会使用行锁。

```sql
--开启事务
STARTTRANSACTION;
--对id=1的记录加行锁
SELECTFROMusersWHEREid=1FORUPDATE;
--其他事务无法修改id=1的记录
COMMIT;
```

间隙锁(GapLock)🕳️

间隙锁锁定的是索引记录之间的间隙,防止其他事务在这个间隙中插入新记录。这在REPEATABLEREAD隔离级别下尤为重要。

```sql
--假设现有id为1,5,10的记录
STARTTRANSACTION;
--锁定(5,10)这个区间
SELECTFROMusersWHEREidBETWEEN5AND10FORUPDATE;
--其他事务无法在5和10之间插入新记录(如id=7)
COMMIT;
```

临键锁(Next-KeyLock)🔗

临键锁是行锁和间隙锁的组合,它锁定记录本身和记录之前的间隙。这是InnoDB默认的行锁算法。

```sql
--假设现有id为1,5,10的记录
STARTTRANSACTION;
--锁定5这条记录和(1,5)这个区间
SELECTFROMusersWHEREid=5FORUPDATE;
--其他事务无法修改id=5的记录,也无法在1和5之间插入新记录
COMMIT;
```

总结🎯

-行锁:锁定单条记录
-间隙锁:锁定记录之间的间隙
-临键锁:行锁+间隙锁的组合

理解这些锁机制对于设计高性能、高并发的数据库应用至关重要!🚀在实际开发中,合理使用这些锁可以避免幻读等问题,同时也要注意避免不必要的锁竞争哦!
http://www.dtcms.com/a/553072.html

相关文章:

  • 做网站制作需要多少钱网络设计公司有哪些
  • 外卖骑手的Python转型指南:从送餐到编程的实战路径
  • 一款端侧TTS:NeuTTS-Air,3秒语音克隆,声音听起来没有生硬感,语气和节奏感相对自然
  • 网站建设网站软件页面设计属于什么知识产权
  • 网站管理的含义长春做网站哪家好
  • Nacos和Nginx集群,项目启动失败问题
  • Opencv(五): 腐蚀和膨胀
  • 17.React获取DOM的方式
  • 编码器读写操作方式
  • WEB服务
  • 2025年10月31日 AI大事件
  • Rust开发中泛型结构体定义与使用(通用容器)
  • 9-SpringCloud-服务网关 Gateway-高级特性之 Filter-2
  • Electron中使用exceljs+Node模块编写
  • 优秀服装网站设计业务接单网站
  • 构造/析构/赋值运算理解
  • 给予虚拟成像台尝鲜版九,支持 HTML 原型模式
  • 区块链技术在生产数据管理中的应用:Hyperledger Fabric与蚂蚁链智能合约设计
  • 可以用手机建设网站吗wordpress程序
  • deepin Ubuntu/Debian系统 环境下安装nginx,php,mysql,手动安装,配置自己的项目
  • SDC命令详解:使用set_dont_touch_network命令进行约束
  • CI/CD(三)—— 【保姆级实操】Jenkins+Docker GitLab+Tomcat 实现微服务CI/CD全流程部署
  • 20. Portals和Fragment
  • 企业网站管理wordpress必备插件
  • 数据结构之栈和队列-栈
  • 操作系统-线程
  • sward零基础学习,创建第一个知识库
  • 门户网站建设方式网站制作叫什么
  • step-ca 证书生成完整步骤指南
  • 从字节码生成看 Lua VM 前端与后端协同:编译器与执行器衔接逻辑