在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL Innodb怎么让MDL LOCK和ROW LOCK记录到errlog

112次阅读
没有评论

共计 5148 个字符,预计需要花费 13 分钟才能阅读完成。

本篇内容主要讲解“MySQL Innodb 怎么让 MDL LOCK 和 ROW LOCK 记录到 errlog”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“MySQL Innodb 怎么让 MDL LOCK 和 ROW LOCK 记录到 errlog”吧!

一、新加入的参数和保留的参数

mysql  show variables like  %gaopeng% 
+--------------------------------+-------+| Variable_name | Value |
+--------------------------------+-------+
| gaopeng_mdl_detail | OFF || innodb_gaopeng_row_lock_detail | ON |
+--------------------------------+-------+

gaopeng_mdl_detail: 默认 OFF,可以设置 ON 用于打印 MDL LOCK 获取、等待、升级、降级、释放日志到 errlog(GOBAL),并且可以在 show engine 中获取

innodb_gaopeng_row_lock_detail: 默认 OFF,可以设置为 ON,用于打印 innodb ROW LOCK 获取日志、等待日志、隐含锁转换日志等到 errlog,并且可以在 show engine 中获取详细锁链表信息 (注意
没有行的详细信息需要开启 innodb_show_verbose_locks) 到 errlog(GLOBAL)。但是没有做表级印象锁输出。

保留原有参数
innodb_show_verbose_locks: 默认为 0,设置为 1,可以在 show engine 中获取锁定的行详细信息。

二、测试概要

MySQL MDL LOCK
也就是如果要 MDL LOCK 测试设置如下:
set global gaopeng_mdl_detail=1;
重新登陆后每次获取 MDL LOCK 信息会得到日志,下面是一个 select 语句获取 MDL LOCK 和释放的日志:

2018-09-01T20:32:07.090351+08:00 11 [Note] [Call Acquire_lock] THIS MDL LOCK acquire [OK]:
2018-09-01T20:32:07.090503+08:00 11 [Note] (MDL PRINT) |Thread id is 11|Current_state: Opening tables| 
2018-09-01T20:32:07.090542+08:00 11 [Note] (- MDL PRINT) DB_name is:test 2018-09-01T20:32:07.090571+08:00 11 [Note] (-- MDL PRINT) OBJ_name is:kkkpk 
2018-09-01T20:32:07.090595+08:00 11 [Note] (--- MDL PRINT) Namespace is:TABLE 
2018-09-01T20:32:07.090608+08:00 11 [Note] (---- MDL PRINT) Fast path is:(Y)
2018-09-01T20:32:07.090621+08:00 11 [Note] (----- MDL PRINT) Mdl type is:MDL_SHARED_READ(SR) 
2018-09-01T20:32:07.090635+08:00 11 [Note] (------- MDL PRINT) Mdl status is:EMPTY 
2018-09-01T20:32:07.091077+08:00 11 [Note] [Call release_lock] this MDL LOCK will [RELEASE]:
2018-09-01T20:32:07.091168+08:00 11 [Note] (MDL PRINT) |Thread id is 11|Current_state: closing tables| 
2018-09-01T20:32:07.091197+08:00 11 [Note] (- MDL PRINT) DB_name is:test 2018-09-01T20:32:07.091210+08:00 11 [Note] (-- MDL PRINT) OBJ_name is:kkkpk 
2018-09-01T20:32:07.091241+08:00 11 [Note] (--- MDL PRINT) Namespace is:TABLE 
2018-09-01T20:32:07.091254+08:00 11 [Note] (---- MDL PRINT) Fast path is:(Y)
2018-09-01T20:32:07.091267+08:00 11 [Note] (----- MDL PRINT) Mdl type is:MDL_SHARED_READ(SR) 
2018-09-01T20:32:07.091280+08:00 11 [Note] (------- MDL PRINT) Mdl status is:EMPTY

Innodb ROW LOCK

如果需要 INNODB ROW LOCK 加锁测试可以设置如下:
set global innodb_gaopeng_row_lock_detail=1;
set innodb_show_verbose_locks=1;

重新登陆,下面是一个 insert 唯一性检查锁定的日志:

2018-09-01T20:26:08.809304+08:00 10 [Note] InnoDB: This TRX help other TRX convert impl lock to expl lock!!!insert often use impl lock!!!!
2018-09-01T20:26:08.809422+08:00 10 [Note] InnoDB: Other TRX:
2018-09-01T20:26:08.809477+08:00 10 [Note] InnoDB: TRX ID:(1294) table:test/kkkpk index:PRIMARY space_id: 28 page_id:3 heap_no:2 row lock mode:LOCK_X|LOCK_NOT_GAP|
PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc ;;
 1: len 6; hex 00000000050e; asc ;;
 2: len 7; hex ae0000001e0110; asc ;;
2018-09-01T20:26:08.809824+08:00 10 [Note] InnoDB: This TRX:
2018-09-01T20:26:08.809851+08:00 10 [Note] InnoDB: TRX ID:(1295) table:test/kkkpk index:PRIMARY space_id: 28 page_id:3 heap_no:2 row lock mode:LOCK_S|LOCK_NOT_GAP|
PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc ;;
 1: len 6; hex 00000000050e; asc ;;
 2: len 7; hex ae0000001e0110; asc ;;
2018-09-01T20:26:08.810401+08:00 10 [Note] InnoDB: Trx(1295) is blocked!!!!!

show engine 也会得到如下记录:

---TRANSACTION 1295, ACTIVE 101 sec inserting
mysql tables in use 1, locked 1LOCK WAIT 2 lock struct(s), heap size 1136, 1 row lock(s)
MySQL thread id 10, OS thread handle 139670301562624, query id 55 localhost root update
insert into kkkpk values(1)
------- TRX HAS BEEN WAITING 101 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 28 page no 3 n bits 72 index PRIMARY of table `test`.`kkkpk` trx id 1295 lock mode S(LOCK_S) locks rec but not gap(LOCK_REC_NOT_GAP) waiting(LOCK_WAIT)
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc ;; 1: len 6; hex 00000000050e; asc ;; 2: len 7; hex ae0000001e0110; asc ;;
------------------
TABLE LOCK table `test`.`kkkpk` trx id 1295 lock mode IX
RECORD LOCKS space id 28 page no 3 n bits 72 index PRIMARY of table `test`.`kkkpk` trx id 1295 lock mode S(LOCK_S) locks rec but not gap(LOCK_REC_NOT_GAP) waiting(LOCK_WAIT)
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc ;; 1: len 6; hex 00000000050e; asc ;; 2: len 7; hex ae0000001e0110; asc ;;
---TRANSACTION 1294, ACTIVE 132 sec2 lock struct(s), heap size 1136, 1 row lock(s), undo log entries 1MySQL thread id 9, OS thread handle 139670301828864, query id 56 localhost root starting
show engine innodb status
TABLE LOCK table `test`.`kkkpk` trx id 1294 lock mode IX
RECORD LOCKS space id 28 page no 3 n bits 72 index PRIMARY of table `test`.`kkkpk` trx id 1294 lock_mode X(LOCK_X) locks rec but not gap(LOCK_REC_NOT_GAP)
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc ;; 1: len 6; hex 00000000050e; asc ;; 2: len 7; hex ae0000001e0110; asc ;;

到此,相信大家对“MySQL Innodb 怎么让 MDL LOCK 和 ROW LOCK 记录到 errlog”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计5148字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 成人av片在线观看免费 | 公车忘穿内裤被挺进小说 | 2020国产精品视频免费 | 亚洲琪琪 | 免费看一区二区三区 | 欧美一区2区三区3区公司 | 被黑人伦流澡到高潮hnp动漫 | 青青草国产精品人人爱99 | 人妻少妇被猛烈进入中文字幕 | 伊人婷婷色香五月综合缴缴情小蛇 | 综合国产在线 | 亚洲人成电影在线观看天堂色 | 国产精品va无码一区二区 | 亚洲精品自在在线观看 | 亚洲av无码一区二区三区四区 | 无码人妻久久一区二区三区 | 熟妇人妻不卡中文字幕 | 国产精品一级毛片不收费 | yyyy11111少妇无码影院 | 国产色婷婷精品综合在线观看 | 久久福利影视 | 性高潮动态图 | 久久精品国产在爱久久 | 黄色网址国产 | 国产欧美日韩精品第三区 | 国产免费久久精品国产传媒 | 夜夜骑天天干 | 色播在线播放 | 黑人vs亚洲美女在线观看 | 国产一级做a爰片久久毛片男 | 成 人 黄 色 大片 | 久久无码人妻精品一区二区三区 | 亚洲日韩欧美内射姐弟 | 成人福利视频在线观看网址 | 免费看一级片 | 亚洲欧美日韩一区在线观看 | 伊人电影综合 | 久久亚洲av无码精品色午夜麻 | 欧美第一黄网免费网站 | 欧美色综合网 | 亚洲成a人片毛片在线 |