You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中Percona MySQL查询间歇性无限循环问题求助

Docker环境下Percona MySQL查询间歇性无限执行问题求助

环境:Docker部署的Percona Distribution MySQL,镜像版本percona:8.0.32-24,my.cnf配置为空。

近4周一直在排查某查询间歇性无限执行的问题:通过MySQL Shell导入数据挖掘算法生成的多个CSV后运行该查询,半数情况下可在2-3秒内成功执行;其余情况会陷入无限循环(持续2天以上),rows_fetched数值持续增长,即便已显示正确的rows_inserted数值。

表结构

CREATE TABLE algo_rca_rule_metric (
 key varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
 rule_id int unsigned NOT NULL,
 context_id int unsigned NOT NULL,
 value double NOT NULL,
 PRIMARY KEY (key,value,rule_id),
 KEY key_rule_id (rule_id,key,value)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

问题查询语句

执行前已插入confidence和support两个指标数据,查询语句如下:

INSERT INTO algo_rca_rule_metric
SELECT
   'confidence_order' AS 'key',
   metric_confidence.rule_id,
   metric_confidence.context_id,
   row_number() over (ORDER BY metric_confidence.value ASC, metric_support.value ASC) AS 'value'
FROM algo_rca_rule_metric metric_confidence
LEFT JOIN algo_rca_rule_metric metric_support ON (metric_confidence.rule_id = metric_support.rule_id AND metric_support.key = 'rule_support')
WHERE metric_confidence.key = 'confidence';

即使去掉INSERT操作,仅保留SELECT部分,仍会出现相同的无限循环问题。

异常时观测到的现象

  • 执行show processlist,该查询状态为status = "Execute"
  • 执行show engine innodb status,事务部分找不到该查询的相关记录
  • 执行select * from sys.schema_table_statistics WHERE table_schema = 'DB_NAME',rows_fetched数值持续无限增长(相同数据集下,异常情况的rows_fetched远高于正常执行时的数值)

已获取该查询的EXPLAIN执行计划,恳请各位提供相关分析或解决思路。

内容的提问来源于stack exchange,提问作者Louis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:02:20