本文介绍: 给一条记录加 Gap Lock,是锁住了这条记录前面的空隙,例如给 id 为 1 的记录加 Gap Lock,锁住的范围是 (-∞,1),给 id 为 3 的记录加 Gap Lock,锁住的范围是 (1,3),那么 id 为 10 后面的空隙怎么锁定呢?S 锁是共享锁,X 锁是排他锁,当我们加 S 锁或者 X 锁的时候,如果用到了索引,锁加在了某一条具体的记录上,那么这个锁也是一个记录锁(其实,记录锁,S 锁,X 锁,概念有一些重复的地方,但是描述的重点不一样)。综上,最终锁定的范围是 [89,95)。
引用:https://blog.csdn.net/xinyuan_java/article/details/128493205
1.隔离级别
在 MySQL 数据库中,默认的事务隔离级别是 REPEATABLE READ。
2.实践
2.1查看事务隔离级别
MySQL8 开始,通过如下命令查看 MySQL 默认隔离级别:
2.2 设置隔离级别
通过如下命令可以修改隔离级别(建议开发者在修改时修改当前 session 隔离级别即可,不用修改全局的隔离级别):
2.3 不可重复读
2.4 幻读
3.幻读怎么解决
3.1 Record Lock
3.2 Gap Lock
3.3 Next-Key Lock
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。