首页/数据/SQL 速查/sys.innodb_lock_waits 找阻塞源头
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

sys.innodb_lock_waits 找阻塞源头

锁等待排查:等待方、阻塞方、阻塞语句与等待时长在一个视图里,直接定位谁在挡谁。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT wait_started, wait_age, locked_table, locked_index,
       waiting_pid, waiting_query,
       blocking_pid, blocking_query
FROM sys.innodb_lock_waits;

-- 关联事务信息
SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id, trx_query
FROM information_schema.innodb_trx;
wait_age已等待时长;持续增长说明阻塞方没有释放
blocking_pid阻塞事务的连接;确认业务归属后再处置
底层数据基于 performance_schema.data_lock_waits(8.0)

易错点

  • 直接处理阻塞方连接:可能是核心业务事务,先看 blocking_query 与业务归属
  • 只看等待方不看阻塞链:链式阻塞时源头可能在更上游的事务

数据来源与参考

  • MySQL 8.0 Reference Manual · sys.innodb_lock_waits
  • MySQL 8.0 Reference Manual · Performance Schema Lock Tables
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌