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 超时可报错
下一篇: Ubuntu下更新VSCode