欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql事务未提交造成表锁-线上事故

程序员文章站 2024-01-13 19:38:52
...

问题描述:ETL抽取数据库基本数据迟迟没有完成,造成下游依赖,延迟从而引起了业务功能.
问题定位:Mysql数据库

从数据库查询出有一堆慢查询

Waiting for table flush 状态的sql

基本从上可看出有DML操作或者锁表了
查询是否存在事务未提交

SELECT a.trx_started,a.trx_state,b.user,b.host,b.DB,b.COMMAND,b.TIME,b.state,b.INFO,b.id from information_schema.innodb_trx a join information_schema.PROCESSLIST b
on a.trx_mysql_thread_id=b.id where trx_state="RUNNING" order by b.time desc limit 18

从事务结果看出,存在复杂却未使用索引的sql,长时间未提交的事务造成锁表.
mysql innodb引擎配置项innodb_lock_wait_timeout 超时可报错

相关标签: mysql