标签:间隙锁(Gap Locks)

JAVA

为什么从Java15开始要禁用偏向锁了?

herman 2年前 (2022-08-31) 3285浏览

背景 为什么从Java15开始要禁用偏向锁了? 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象静态同步方法,锁上当前类 Class 对象同步块,锁...

SQL

InnoDB 中 RR(Repeatable Read) 隔离级别下不存在幻读?

herman 4年前 (2020-03-26) 2935浏览

众所周知,MySQL 是国内使用最多的数据库,拥有众多的用户,但是各方面的相关文章,互相驳论!今天我们来说一说,InnoDB 中 RR(Repeatable Read) 隔离级别下到底存不存在幻读? 标准 SQL 在标准 SQL,标准情...

SQL

MySQL InnoDB 的加锁分析

herman 4年前 (2020-03-25) 2181浏览

前面写了一篇 MySQL 的 2PL 文章《8 张图,给你完整的剖析 MySQL 两阶段加锁(2PL)协议》,群里有人@我关于 MySQL 的加锁问题,事实上 MySQL 的加锁过程非常的复杂,2PL 只是一个最简单,最容易理解的一个!今天,再介绍...

JAVA

Java 锁粗化与循环

herman 4年前 (2020-02-28) 1995浏览

锁粗化(Lock Coarsening)。锁粗化是合并使用相同锁对象的相邻同步块的过程。如果编译器不能使用锁省略(Lock Elision)消除锁,那么可以使用锁粗化来减少开销。 众所周知,Hotspot 确实进行了锁粗化优化,可以有效合并几...

SQL

MySQL 主键索引在 RR 和 RC 隔离级别下的加锁情况总结

herman 5年前 (2019-06-16) 2679浏览

最近群里不少人讨论了一些高质量的问题。我今天抽时间给大家总结一个 MySQL InnoDB 存储引擎各种不同 SQL 情况下,加行锁、间隙锁、next-key lock 做一个总结。如果有错误的地方,请大家指正! MySQL的所有锁 为...

SQL

一夫当关万夫莫开,MySQL全局锁(FTWRL)真香

herman 5年前 (2019-05-12) 5360浏览

这是一把好锁,真香! MySQL 全局锁,听到的人可能真没多少。一方面是一些人认为 DBA 才需要深入吧,另一方面多数人接触不到这么深的知识。还有一方面可能就真如大家所说的“没有时间学习”! 昨天那篇文章,我提到了一个数据迁移。我们来看...

SQL

InnoDB 的 select 行锁还是表锁

herman 6年前 (2018-09-12) 6846浏览 0评论

前面有一篇文章说到了,InnoDB 的 select 查询会锁表,有的人不信。然而有的人学习能力很强,立马在官方网站上找到了,select 查询会锁表,就看你怎么使用,并不是说所有的 select 查询都会锁表。具体看你的事务隔离级别,和编写的查...