美文网首页
mysql插入意向锁测试

mysql插入意向锁测试

作者: pangzhaojie | 来源:发表于2019-03-26 22:22 被阅读0次

    1、表结构

        CREATE TABLE `reno` (

      `id` int(11) NOT NULL AUTO_INCREMENT,

      `name` varchar(10) DEFAULT NULL,

      PRIMARY KEY (`id`)

    ) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=utf8

    2、表数据

        insert into reno select 5, 'aa';

      insert into reno select 7, 'bb';

      insert into reno select 9, 'cc';

      insert into reno select 18, 'dd';

      insert into reno select 23, 'ee';

      insert into reno select 30, 'ff';

      insert into reno select 40, 'gg';

      insert into reno select 45, 'hh';

      insert into reno select 99, 'ii';

    3、两种尝试

        下面两种方案都会造成阻塞,我理解都是事务1获取到了间隙锁,事务2获取插入意向锁阻塞,但是“show engine INNODB status\G;”输出结果不一样,

    第一种方案
        事务1 lock_mode X locks gap before rec 我理解是间隙锁
        事务2 lock_mode X locks gap before rec insert intention waiting 我理解是获取插入意向锁

    第二种方案

        事务1  trx id 9821 lock_mode X 我理解是 Next key锁
        事务2 lock_mode X insert intention waiting 我理解是获取插入意向锁
    我的疑问 为什么两个方案,事务1获取的锁,以及事务2获取的锁都是不一样的呢 

    第一种方案 

    相关文章

      网友评论

          本文标题:mysql插入意向锁测试

          本文链接:https://www.haomeiwen.com/subject/mpdovqtx.html