微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL 一直忽略 MAX_EXECUTION_TIME

如何解决MySQL 一直忽略 MAX_EXECUTION_TIME

我正在使用 MysqL8 运行节点服务器。
查询不断弹出并冻结。
SELECT /*+ MAX_EXECUTION_TIME(2000) */ COUNT(*) FROM my_table
即使此查询中提到了 MAX_EXECUTION_TIME,它仍会在超过此限制的情况下继续执行(基本上它永远不会停止)。我见过它运行的最长时间大约是 20-30 天,即使在那之后它也没有停止,我已经重新启动了服务器。

主要问题是我什至无法终止此查询。即使杀死它,它也会继续执行,永不停止。
我什至无法重新启动 MysqL。尝试重启MysqL后。它只是关闭,永远不会重新开始。
我不得不重新启动服务器(这是完全不可接受的)。

SHOW OPEN TABLES;
表明该表正在使用中。它不会影响表中数据的读取、更新或插入。但是,一旦我尝试更改此表或任何其他与此表有任何参考关系的表。当查询发生死锁时,它会冻结整个节点服务器,并且每个查询都在等待第一个查询结束,正如已经说过的,从来没有。

在我的任何节点 js 代码中都不存在这个有问题的查询
但是正在由我的节点服务器使用的用户MysqL 用户)执行,我也使用这个用户adminer。>

查询始终与此特定表一起显示。下面是show create table my_table;的示例输出(表名和列名改变)

CREATE TABLE `my_table` (
`id` int NOT NULL AUTO_INCREMENT,`col1` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,`col2` int NOT NULL,`col3` longtext COLLATE utf8_unicode_ci,`col4` longtext COLLATE utf8_unicode_ci,`col5` mediumtext COLLATE utf8_unicode_ci,`col5` int DEFAULT NULL COMMENT 'in seconds',`col6` tinyint(1) NOT NULL DEFAULT '0',`col7` int DEFAULT NULL,`col8` int DEFAULT NULL,`col9` timestamp NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`),KEY `test_level` (`col7`),KEY `col9` (`col9`),KEY `col6` (`col6`),KEY `col5` (`col5`),KEY `col2` (`col2`),CONSTRAINT `my_table_ibfk_1` FOREIGN KEY (`col7`) REFERENCES `table_1` (`id`),CONSTRAINT `my_table_ibfk_2` FOREIGN KEY (`col2`) REFERENCES `table_2` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB AUTO_INCREMENT=4078 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

此表中的行数约为 4000。

确切的 MysqL 版本 8.0.19

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。