- 博客(6)
- 收藏
- 关注
原创 MySQL事务学习-Gap Lock2
关于事务的隔离级别, 在官方文档中(), 有这么一段描述:在这种情况下,要进行非加锁的读取,可以将事务的隔离级别设置为 READ UNCOMMITTED 或 READ COMMITTED,从而避免对选定表中的行设置锁。以下是GPT的一些总结间隙锁(Gap Lock)确实会受到事务隔离级别的影响,其主要作用是在高隔离级别下保证数据一致性,但这会牺牲一定的并发性。在一些较低的隔离级别中,由于并发性优先,间隙锁会被禁用或部分限制。防止幻读。
2024-12-02 22:55:13
780
原创 MySQL事务学习-Gap Lock1
间隙锁是一种重要的并发控制机制,在特定场景(如范围查询、可重复读隔离级别)下使用,可以有效防止幻读问题。但它也可能对性能和并发造成一定影响,因此需要在设计和调优中合理使用。MySQL 间隙锁行为的实际表现, 可以通过 MySQL 的索引扫描范围和锁定策略来解释。
2024-12-01 21:15:21
1866
原创 MySQL事务学习-2024-11-30
S锁和X锁可用于行级的数据保护,控制数据的读写权限。IS锁和IX锁是表级的意向锁,用于快速判断是否允许对某些行加行级锁。锁兼容性:S锁适用于多事务同时读,但与X锁冲突。IX锁和IS锁之间兼容,但意向锁与表级S锁或X锁可能冲突。
2024-11-30 22:55:17
1993
原创 MySQL事务-2024-11-29
现象揭示了MySQL InnoDB引擎在处理SQL语句和锁机制时一些细致而特殊的行为。这些现象可以从数据类型的转换、记录锁的工作原理,以及InnoDB的实现细节三个层面进行解析。1. VARCHAR主键与WHERE条件中的隐式类型转换在表中,id是VARCHAR类型,SQL语句中使用会锁定整个表的多个记录,而只锁定匹配的行。InnoDB的锁是基于索引的,而索引操作依赖于SQL条件的精确匹配。当id为VARCHAR类型时:使用会正确匹配索引项,并仅对匹配的行加锁。使用。
2024-11-29 23:20:59
1528
原创 Mysql事务学习-2024-11-28
从你的SQL实验现象中,我们可以总结出MySQL中事务和锁机制的以下特性及行为,特别是在1. 锁的作用与排他性共享锁 (S锁):事务A在时,获取了S锁,表明对记录的读取操作希望阻止其他事务对该记录的修改。排他锁 (X锁):事务B试图通过UPDATE操作获取X锁,但因为记录已经被事务A的S锁保护,因此B需要等待A释放锁。在事务A提交之前,事务B只能处于等待状态,体现了InnoDB的严格锁机制。2. 锁与隔离级别的关系隔离级别未改变:从多次查询的结果可知,事务A和事务B都运行在。
2024-11-28 23:00:02
585
原创 Mysql事务学习
下面展示两个事务,事务A和事务B。其中事务A执行查询, 主动在行上添加S锁, 然后直接在上下文再次执行开启事务的命令, 期望开启事务B, 看看会同时开启两个事务吗?BEGIN和是完全等价的事务开启命令。在显式事务中,如果旧事务未提交,开启新事务时会触发旧事务的自动提交。普通的SELECT不会单独创建事务上下文,trx_id保持一致。写操作(如UPDATE)会为每个事务生成新的trx_id,即使内容完全相同。下面展示两个事务,事务A和事务B。其中事务A执行查询, 主动在行上添加S锁。
2024-11-28 21:04:48
926
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅