INNODB_LOCKS
テーブルには、InnoDB
トランザクションがリクエストしたがまだ取得していない各ロックと、別のトランザクションをブロックしているトランザクションが保持している各ロックに関する情報が表示されます。
このテーブルは非推奨で、MySQL 8.0.1 の時点で削除されています。 代わりに、パフォーマンススキーマ data_locks
テーブルを使用してください。 セクション27.12.13.1「data_locks テーブル」を参照してください。
INNODB_LOCKS
と data_locks
の相違点:
トランザクションがロックを保持している場合、
INNODB_LOCKS
は、別のトランザクションがロックを待機している場合にのみロックを表示します。data_locks
では、トランザクションが待機しているかどうかに関係なく、ロックが表示されます。data_locks
テーブルには、LOCK_SPACE
、LOCK_PAGE
またはLOCK_REC
に対応するカラムはありません。INNODB_LOCKS
テーブルには、グローバルPROCESS
権限が必要です。data_locks
テーブルには、選択元のテーブルに対するSELECT
の通常のパフォーマンススキーマ権限が必要です。
次のテーブルに、INNODB_LOCKS
カラムから data_locks
カラムへのマッピングを示します。 この情報を使用して、あるテーブルから別のテーブルにアプリケーションを移行します。
表 26.4 INNODB_LOCKS から data_locks カラムへのマッピング
INNODB_LOCKS カラム | data_locks カラム |
---|---|
LOCK_ID |
ENGINE_LOCK_ID |
LOCK_TRX_ID |
ENGINE_TRANSACTION_ID |
LOCK_MODE |
LOCK_MODE |
LOCK_TYPE |
LOCK_TYPE |
LOCK_TABLE (スキーマ名とテーブル名の組合せ) |
OBJECT_SCHEMA (スキーマ名)、OBJECT_NAME (テーブル名) |
LOCK_INDEX |
INDEX_NAME |
LOCK_SPACE |
なし |
LOCK_PAGE |
なし |
LOCK_REC |
なし |
LOCK_DATA |
LOCK_DATA |