我们正面临着一个问题,这可能是由于AWS RDS上的资源耗尽造成的。当我们检查AWS RDS性能洞察时,我们得到了几个具有非常高延迟(甚至超过1小时)的SQL。
SELECT
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
r.trx_query waiting_query,
b.trx_id blocking_trx_id,
b.trx_mysql_thread_id blocking_thread,
b.trx_query blocking_query
FROM information_schema.innodb_lock_waits w
INNER JOIN information_schema.innodb_trx b
ON b.trx_id = w.blocking_trx_id
INNER JOIN information_schema.innodb_trx r
ON r.trx_id = w.requesting_trx_id;
字符串
我们发现它可能是由死锁引起的,发现一些类似于
select *** from table where id = *** for update
型
这一个被
第一个月
并且该更新查询被具有相同ID的另一更新查询阻塞。
当我们检查源代码时,没有定义像我们使用selectfor update**语句。
有什么建议我们可以进行下一步调查吗?
1条答案
按热度按时间j9per5c41#
SHOW ENGINE=INNODB STATUS;
查看最新的死锁(如果它确实死锁)。将结果与
SHOW CREATE TABLE
一起给出,然后我们可以进一步讨论。