暂无图片
mysql rr下,未提交的插入数据,data_locks表中,LOCK_DATA: NULL的问题
我来答
分享
暂无图片 匿名用户
mysql rr下,未提交的插入数据,data_locks表中,LOCK_DATA: NULL的问题

mysql> create table t(id int primary key,age int);
Query OK, 0 rows affected (1.66 sec)

mysql>
mysql> alter table t add index idx_age(age);
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> insert into t values(1,1),(2,3),(3,4),(4,4),(5,7),(6,7),(7,10),(8,11);
Query OK, 8 rows affected (0.17 sec)
Records: 8 Duplicates: 0 Warnings: 0

---sess 1

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t select 9,3;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0


sess 2

mysql> select * from performance_schema.data_locks\G;
*************************** 1. row ***************************
ENGINE: INNODB
ENGINE_LOCK_ID: 139831828299216:1158:139831720086024
ENGINE_TRANSACTION_ID: 14900
THREAD_ID: 50
EVENT_ID: 188
OBJECT_SCHEMA: test
OBJECT_NAME: t
PARTITION_NAME: NULL
SUBPARTITION_NAME: NULL
INDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 139831720086024
LOCK_TYPE: TABLE
LOCK_MODE: IX
LOCK_STATUS: GRANTED
LOCK_DATA: NULL


请问LOCK_DATA: NULL 为啥是null,不应该有数据吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
BAZINGA...

这是插入意向锁,是表锁,设计如此,为了提高插入的并发性; 你重新开一个会话,再插入相同的记录,这时会被阻塞,然后再查看data_locks视图,就明白了

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏