MySQL
文章平均质量分 90
程序员小航
这个作者很懒,什么都没留下…
展开
-
MySQL next-key lock 加锁范围总结
前言三篇文章分别通过实际操作,介绍了主键、非主键唯一索引、普通索引、普通字段四个方面介绍了加锁的范围。本篇文章再做一个总结。data_locksselect * from performance_schema.data_locks;LOCK_MODELOCK_DATA锁范围X,REC_NOT_GAP1515 那条数据的行锁X,GAP1515 那条数据之前的间隙,不包含 15X1515 那条数据的间隙,包含 15LOCK_MODE = X 是前原创 2021-06-08 10:38:50 · 778 阅读 · 0 评论 -
MySQL普通索引的加锁
前言前面已经介绍了主键索引的加锁范围和非主键唯一索引的加锁范围。主键索引:加锁时,会先给表添加意向锁,IX 或 IS;加锁是如果是多个范围,是分开加了多个锁,每个范围都有锁;(这个可以实践下 id < 20 的情况)主键等值查询,数据存在时,会对该主键索引的值加行锁 X,REC_NOT_GAP;主键等值查询,数据不存在时,会对查询条件主键值所在的间隙添加间隙锁 X,GAP;主键等值查询,范围查询时情况则比较复杂:8.0.17 版本是前开后闭,而 8.0.18 版本及以后,修改为了前原创 2021-06-06 11:56:03 · 1861 阅读 · 1 评论 -
看来,MySQL next-key lock 的 bug 并没有被修复!
前言在上一篇文章《MySQL next-key lock 加锁范围是什么?》中已经介绍了主键索引的加锁范围,现在来回顾一下:加锁时,会先给表添加意向锁,IX 或 IS;加锁是如果是多个范围,是分开加了多个锁,每个范围都有锁;(这个可以实践下 id < 20 的情况)主键等值查询,数据存在时,会对该主键索引的值加行锁 X,REC_NOT_GAP;主键等值查询,数据不存在时,会对查询条件主键值所在的间隙添加间隙锁 X,GAP;主键等值查询,范围查询时情况则比较复杂:8.0.17 版本是前原创 2021-06-06 11:55:25 · 190 阅读 · 0 评论 -
MySQL next-key lock 加锁范围是什么?
前言某天,突然被问到 MySQL 的 next-key lock,我瞬间的反应就是:这都是啥啥啥???这一个截图我啥也看不出来呀?仔细一看,好像似曾相识,这不是《MySQL 45 讲》里面的内容么?什么是 next-key lockA next-key lock is a combination of a record lock on the index record and a gap lock on the gap before the index record.官网的解释大概意思原创 2021-06-06 11:54:22 · 782 阅读 · 0 评论