Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


14.14.2.2 INNODB_LOCKS と INNODB_LOCK_WAITS のデータ

トランザクションがテーブル内の行を更新するか、または SELECT FOR UPDATE でロックする場合、InnoDB はその行に関するロックのリストまたはキューを確立します。同様に、テーブルレベルのロックの場合、InnoDB はテーブルに関するロックのリストを保持します。2 番目のトランザクションが、互換性がないモードにある以前のトランザクションによってすでにロックされている行の更新またはテーブルのロックを行おうとした場合、InnoDB はその行に対するロック要求を対応するキューに追加します。トランザクションによって取得されるロックの場合は、その行またはテーブルのロックキューに以前に入力された互換性のないロック要求をすべて削除する (これらのロックを保持または要求しているトランザクションがコミットまたはロールバックする) 必要があります。

トランザクションは、異なる行またはテーブルに対する任意の数のロック要求を保持できます。トランザクションはいつでも、別のトランザクションによって保持されているロックを要求できますが、そのロックは、その別のトランザクションによってブロックされます。要求しているトランザクションは、ブロックしているロックを保持するトランザクションがコミットまたはロールバックするのを待機する必要があります。ロックを待機していないトランザクションは、'RUNNING' 状態にあります。ロックを待機しているトランザクションは、'LOCK WAIT' 状態にあります。

INNODB_LOCKS テーブルは、'LOCK WAIT' トランザクションごとに、その続行を妨げているすべてのロック要求を示す 1 つ以上の行を保持しています。このテーブルにはまた、特定の行またはテーブルに対して保留されているロックのキュー内の各ロックを記述した 1 行も含まれています。INNODB_LOCK_WAITS テーブルは、ほかのトランザクションによって要求されたロックを、あるトランザクションによってすでに保持されているどのロックがブロックしているかを示します。


User Comments
Sign Up Login You must be logged in to post a comment.