MySQL普通索引加锁分析

MySQL版本:8.0.29
测试表:
在这里插入图片描述
测试数据:
在这里插入图片描述

开始实验:
1)普通索引等值查询不存在的值
在这里插入图片描述

mysql>  SELECT * FROM performance_schema.data_locks\G
*************************** 1. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 140346328944544:1066:140346432670032
ENGINE_TRANSACTION_ID: 3927
            THREAD_ID: 68
             EVENT_ID: 123
        OBJECT_SCHEMA: db_study
          OBJECT_NAME: user
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 140346432670032
            LOCK_TYPE: TABLE
            LOCK_MODE: IX
          LOCK_STATUS: GRANTED
            LOCK_DATA: NULL
*************************** 2. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 140346328944544:5:5:2:140346462116384
ENGINE_TRANSACTION_ID: 3927
            THREAD_ID: 68
             EVENT_ID: 123
        OBJECT_SCHEMA: db_study
          OBJECT_NAME: user
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: age
OBJECT_INSTANCE_BEGIN: 140346462116384
            LOCK_TYPE: RECORD
            LOCK_MODE: X,GAP
          LOCK_STATUS: GRANTED
            LOCK_DATA: 99, 10
2 rows in set (0.00 sec)

加锁分析:
表意向写锁,
age索引间隙锁(89,99)

2)普通索引等值查询存在的值
在这里插入图片描述

mysql>  SELECT * FROM performance_schema.data_locks\G
*************************** 1. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 140346328944544:1066:140346432670032
ENGINE_TRANSACTION_ID: 3928
            THREAD_ID: 68
             EVENT_ID: 128
        OBJECT_SCHEMA: db_study
          OBJECT_NAME: user
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 140346432670032
            LOCK_TYPE: TABLE
            LOCK_MODE: IX
          LOCK_STATUS: GRANTED
            LOCK_DATA: NULL
*************************** 2. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 140346328944544:5:5:3:140346462116384
ENGINE_TRANSACTION_ID: 3928
            THREAD_ID: 68
             EVENT_ID: 128
        OBJECT_SCHEMA: db_study
          OBJECT_NAME: user
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: age
OBJECT_INSTANCE_BEGIN: 140346462116384
            LOCK_TYPE: RECORD
            LOCK_MODE: X
          LOCK_STATUS: GRANTED
            LOCK_DATA: 89, 11
*************************** 3. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 140346328944544:5:4:3:140346462116728
ENGINE_TRANSACTION_ID: 3928
            THREAD_ID: 68
             EVENT_ID: 128
        OBJECT_SCHEMA: db_study
          OBJECT_NAME: user
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: PRIMARY
OBJECT_INSTANCE_BEGIN: 140346462116728
            LOCK_TYPE: RECORD
            LOCK_MODE: X,REC_NOT_GAP
          LOCK_STATUS: GRANTED
            LOCK_DATA: 11
*************************** 4. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 140346328944544:5:5:2:140346462117072
ENGINE_TRANSACTION_ID: 3928
            THREAD_ID: 68
             EVENT_ID: 128
        OBJECT_SCHEMA: db_study
          OBJECT_NAME: user
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: age
OBJECT_INSTANCE_BEGIN: 140346462117072
            LOCK_TYPE: RECORD
            LOCK_MODE: X,GAP
          LOCK_STATUS: GRANTED
            LOCK_DATA: 99, 10
4 rows in set (0.00 sec)

加锁分析:
表意向写锁,
age索引 next_key_lock(79,89]
主键索引行排他锁11,
age索引 gap lock(89,99)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值