地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【MySQL】MySQL 5.7でsysスキーマにロック状態確認ができるビューがあった

qiita.com

あるトランザクションのロックが他のトランザクションのロック獲得を待たせているみたいなのを引くにはinformation_schemaのLOCK関係のテーブルをJOINしていく必要があると思っていたが上記の記事を見ていくとsysにもっと便利にみれるビューがあることに気づいた。これは便利。

mysql> SELECT * FROM  sys.innodb_lock_waits\G
*************************** 1. row ***************************
                wait_started: 2018-01-07 13:09:32
                    wait_age: 00:00:02
               wait_age_secs: 2
                locked_table: `lock_test`.`lock_test`
                locked_index: PRIMARY
                 locked_type: RECORD
              waiting_trx_id: 92210
         waiting_trx_started: 2018-01-07 13:07:49
             waiting_trx_age: 00:01:45
     waiting_trx_rows_locked: 2
   waiting_trx_rows_modified: 0
                 waiting_pid: 6
               waiting_query: UPDATE lock_test.lock_test SET val1=6 WHERE id=6
             waiting_lock_id: 92210:112:3:7
           waiting_lock_mode: X
             blocking_trx_id: 92209
                blocking_pid: 4
              blocking_query: NULL
            blocking_lock_id: 92209:112:3:7
          blocking_lock_mode: X
        blocking_trx_started: 2018-01-07 13:04:45
            blocking_trx_age: 00:04:49
    blocking_trx_rows_locked: 1
  blocking_trx_rows_modified: 1
     sql_kill_blocking_query: KILL QUERY 4
sql_kill_blocking_connection: KILL 4
1 row in set, 3 warnings (0.00 sec)