あるトランザクションのロックが他のトランザクションのロック獲得を待たせているみたいなのを引くには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)