一、问题描述:
同事反馈线上一个表有其中一条数据无法删除,其他都正常,我拿到删数据的sql,尝试执行,报错如下:
mysql> delete from facebook_posts where id = 7048962;
二、问题处理
从报错信息看,应该是关于这条数据有事物未提交,锁等待超时了,下面我们就开始验证并解决问题
1、在sql执行期间,通过information_schema.innodb_trx表找到这个sql的事物ID(5316933097 )
mysql> select trx_id,trx_started,trx_requested_lock_id,trx_mysql_thread_id,trx_query from information_schema.innodb_trx where trx_query=‘delete from facebook_posts where id = 7048962‘;
+------------+---------------------+------------------------+---------------------+-----------------------------------------------+
| trx_id | trx_started | t rx_requested_lock_id | trx_mysql_thread_id | trx_query
+------------+---------------------+------------------------+---------------------+-----------------------------------------------+
| 5316933097 | 2017-08-15 07:31:57 | 5316933097:923:24693:6 | 1798850878 | delete from facebook_posts where id = 7048962 |
+------------+---------------------+------------------------+---------------------+-----------------------------------------------+
关于innodb_trx表字段含义的解释: