找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

673

积分

1

好友

88

主题
发表于 昨天 03:24 | 查看: 1| 回复: 0

在深入探讨MySQL InnoDB的锁机制之前,让我们通过两个具体案例来测试一下对锁的理解。

案例一:主键冲突与间隙锁

环境:MySQL,InnoDB引擎,默认的重复读(RR)隔离级别。

假设存在数据表 t,结构如下:

t(id PK, name);

表中现有数据:

10, shenjian
20, zhangsan
30, lisi

操作序列:

  1. 事务A先执行(尚未提交):
    insert into t values(11, xxx);
  2. 事务B后执行:
    insert into t values(12, ooo);

问题:事务B的插入操作是否会被阻塞?

案例二:自增主键与锁

环境:MySQL,InnoDB引擎,默认的重复读(RR)隔离级别。

假设存在数据表 t,结构如下(含自增主键):

t(id AUTO_INCREMENT PRIMARY KEY, name);

表中现有数据:

1, shenjian
2, zhangsan
3, lisi

操作序列:

  1. 事务A先执行(尚未提交):
    insert into t(name) values('xxx');
  2. 事务B后执行:
    insert into t(name) values('ooo');

问题:事务B的插入操作是否会被阻塞?


这两个案例本质上都是对 InnoDB锁机制 的考察,特别是间隙锁(Gap Lock)、插入意向锁(Insert Intention Lock)等概念在具体场景下的交互。更多关于数据库锁机制的深入讨论,可以在数据库与中间件板块找到相关资源。理解这些底层机制,对于设计高性能、高并发的数据库应用至关重要。后续我们将系统性地剖析InnoDB的7种核心锁类型。




上一篇:大模型训练应实时更新吗?RAG与微调的技术选型辩论
下一篇:Hive数据压缩与存储格式选型实战:ORC、Parquet与DistCP跨集群拷贝
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-12 08:56 , Processed in 0.119857 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表