使用 MariaDB 10.4.12,我正在尝试执行一个基于子查询的 DELETE 语句:
DELETE FROM `mydb1`.`mytable1`
WHERE `my_id` IN (
SELECT `TABLE_ID` FROM `TABLES_CT`
WHERE `TABLE_NAME` = 'tableName'AND `TABLE_ACTION` IN ('D', 'U')
);
当我执行此操作时,它会在 30 秒后超时。如果我查看 information_schema.innodb_lockwaits 和 innodb_trx,相同的 DELETE 语句会在两个不同的线程上阻塞自身。
如果我将它作为 SELECT 运行,它会在 1 毫秒内执行。
有任何想法吗?