MYSQL GAP锁在同一个查询段中能不能兼容

这篇文章主要介绍“MYSQL GAP锁在同一个查询段中能不能兼容”,在日常操作中,相信很多人在MYSQL GAP锁在同一个查询段中能不能兼容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL GAP锁在同一个查询段中能不能兼容”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

MYSQL 的锁,一直都是一个研究的热点,其中GAP锁的研究一直很 HOT,如果有人问,在同一个查询段,GAP 锁是否可以“兼容”。你怎么回答,这里不做直接回答,我们来做实验

先交代清楚这个实验是怎么做的。

use test;

CREATE TABLE IF NOT EXISTS `gap_test`(

   `id` INT UNSIGNED AUTO_INCREMENT,

   `name` VARCHAR(20) ,

   `age` tinyint ,

   `date` DATETIME,

   PRIMARY KEY ( `id` )

)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 row_format = DYNAMIC;

insert into `gap_test`  (name,age,date) values ('austin',18,now());

insert into `gap_test`  (name,age,date) values ('tim',28,now());

insert into `gap_test`  (name,age,date) values ('johnny',16,now());

insert into `gap_test`  (name,age,date) values ('jason',17,now());

insert into `gap_test`  (name,age,date) values ('winnset',38,now());

create index ix_gap_test_age on gap_test(age);

上面是初始的数据。

情景1 ,

Session 1 

MYSQL GAP锁在同一个查询段中能不能兼容

Session 2 

MYSQL GAP锁在同一个查询段中能不能兼容

下面我们看锁的信息

MYSQL GAP锁在同一个查询段中能不能兼容

产生锁,但没有gap  锁

2  情况2 

session 1

MYSQL GAP锁在同一个查询段中能不能兼容

session 2

MYSQL GAP锁在同一个查询段中能不能兼容

的信息

MYSQL GAP锁在同一个查询段中能不能兼容

情况3

session 1 

MYSQL GAP锁在同一个查询段中能不能兼容

Session 2

MYSQL GAP锁在同一个查询段中能不能兼容

结果

MYSQL GAP锁在同一个查询段中能不能兼容

情况4 

session 1

MYSQL GAP锁在同一个查询段中能不能兼容

session 2

MYSQL GAP锁在同一个查询段中能不能兼容

结果不锁

情况 5 

session 1

MYSQL GAP锁在同一个查询段中能不能兼容

session 2

MYSQL GAP锁在同一个查询段中能不能兼容

结果

MYSQL GAP锁在同一个查询段中能不能兼容

情况 6

session 1

MYSQL GAP锁在同一个查询段中能不能兼容

session 2

MYSQL GAP锁在同一个查询段中能不能兼容

结果

MYSQL GAP锁在同一个查询段中能不能兼容

情况 7

session 1

MYSQL GAP锁在同一个查询段中能不能兼容

session 2

MYSQL GAP锁在同一个查询段中能不能兼容

结果

MYSQL GAP锁在同一个查询段中能不能兼容

情况 8 

session 1

MYSQL GAP锁在同一个查询段中能不能兼容

session 2

MYSQL GAP锁在同一个查询段中能不能兼容

结果

MYSQL GAP锁在同一个查询段中能不能兼容

到此,关于“MYSQL GAP锁在同一个查询段中能不能兼容”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!