innodb lock monitor
InnoDB lock monitorの有効化方法 (mysql 5.7以降??)
- 以下を実行後、
SHOW ENGINE INNODB STATUS\G
set GLOBAL innodb_status_output=ON; set GLOBAL innodb_status_output_locks=ON;
ロック種別の一覧
InnnoDB Lock Monitor上の表記 | ロック種別 |
---|---|
lock mode S | ネクストキーロック(共有) |
lock mode S locks gap before rec | ギャップロック(共有) |
lock mode S locks rec but not gap | レコードロック(共有) |
lock mode X | ネクストキーロック(排他) |
lock mode X locks gap before rec | ギャップロック(排他) |
lock mode X locks rec but not gap | レコードロック(排他) |
lock mode X insert intention | インテンションギャップロック(排他) |
Innodb Lock Monitorの読み方 [1]
- innodbにおいて、クラスタ化インデックスを構成する各リーフノードは、以下から構成される。[2]
- 上記の点を押さえておくと、ロックされたレコード一覧に表示されるデータ構造の意味が読み取りやすい。
- supremum については、こちらの記事 が詳しい
参考文献
[1] トランザクション分離レベルの勉強記録(3) innodb_lock_monitorのTRANSACTIONS部分の読み方
[2] 『実践ハイパフォーマンスMySQL 第2版』P118-119