LOCK_STATUS | GRANTED LOCK_DATA | <null> 此时,我们可以看到 lock tables 语句给 t1 表加了表级别的共享锁。 看到这里,大家可能会有个疑问: autocommit = OFF 时,lock tables ... read 不给表加表级别的共享锁,怎么阻止其它事务改变表的数据? 答案是 MySQL 会给表加元数据锁。 不管系统变量 autocommit ...
PARTITION_NAME:NULLSUBPARTITION_NAME:NULLINDEX_NAME:NULLOBJECT_INSTANCE_BEGIN:139907418869440LOCK_TYPE:TABLELOCK_MODE: IX LOCK_STATUS: GRANTED LOCK_DATA:NULL***2. row***ENGINE: INNODB ENGINE_LOCK_ID:139907486244056:59:4:2:139907418866384ENGINE_TRANSACTION_ID:3816000THREAD_ID:52900EVENT_ID:44OBJECT_S...
LOCK_STATUS: GRANTED SOURCE: OWNER_THREAD_ID: 34 OWNER_EVENT_ID: 21 THREAD_ID: 34 NAME: thread/sql/one_connection TYPE: FOREGROUND PROCESSLIST_ID: 8 PROCESSLIST_USER: root PROCESSLIST_HOST: localhost PROCESSLIST_DB: bisal PROCESSLIST_COMMAND: Query PROCESSLIST_TIME: 5 PROCESSLIST_STATE: Waiting ...
LOCK_TYPE锁类型:TABLE对应表级锁,RECORD对应行级锁。 LOCK_MODE加锁模式,对应具体锁的类型,比如:IX 意向排他锁,X,GAP 排他间隙锁。 LOCK_STATUS锁的状态,GRANTED 已获取,WAITING 等待中 LOCK_DATA加锁的数据,这里的10表示,在主键索引值为10的记录上加锁。由于加的是间隙锁GAP,这里锁定的是3~10这个间隙。...
LOCK_STATUS: (1)GRANTED:获得 (2)WAITING:阻塞等待 LOCK_DATA: 当LOCK_TYPE = TABLE 即是表锁时,为空 当LOCK_TYPE = RECORD 时,是多少就是多少,有个特殊的:supremum pseudo-record:表示正无穷 它的临键锁和间隙锁可以理解为相等 3.3 锁的是什么 ...
Gap lock: 对索引项之间的间隙、第一条记录前的间隙或最后一条记录后的间隙加锁。 Next-key lock: 前两种的组合,对记录及其前面的间隙加锁。 InnoDB行锁实现意味着如果不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,实际效果和表锁一样。
LOCK_MODE:对应的锁模式(也就是具体的锁)。 LOCK_STATUS:对应锁的状态(GRANTED或者WAITING)。 LOCK_DATA:对应锁住的数据。 所以可以使用 select OBJECT_NAME,INDEX_NAME,LOCK_TYPE,LOCK_MODE,LOCK_STATUS,LOCK_DATA from performance_schema.data_locks; 更简易的查询需要的信息即可。
LOCK_STATUS :锁的请求状态。GRANTED持有锁 / WAITING 等待锁 LOCK_DATA: 与锁关联的数据(如果有)。锁相关的数据(如果有的话)。该值依存储引擎而定。对于InnoDB来说, 如果LOCK_TYPE 是 RECORD,则会显示一个值,否则该值为 NULL。 如果锁定在主键索引上,则会显示被...
此时再次查看metadata_lock表,发现多了一条t1的加锁记录,加锁类型为SHARED_READ,且状态是已授予(GRANTED)。大家通常理解的查询不加锁,是指不在表上加innodb行锁。 如果在执行sleep期间,另外一个session执行了一个加字段操作,此时就会产生metadata lock锁等待: ...
X: LOCK_TYPE=TABLE时,表示表级排他锁;LOCK_TYPE=RECORD, 表示行级排他锁和间隙锁构成的next-key lock X, GAP: 间隙锁 X, REC_NOT_GAP: 行级排他锁 X,GAP,INSERT_INTENTION: [插入意向锁](# 插入意向锁)。 IX: 意向排他锁 LOCK_STATUS: 锁状态,GRANTED: 已获取;WAITING: 等待获取 LOCK_DATA: 锁...