【发布时间】:2018-05-02 23:10:49
【问题描述】:
我遇到了 mysql 进程保持活动状态的问题。
显示进程列表; 返回进程列表。存在几个小时的进程 - 根据进程 ID、主机(端口)。
看起来进程执行查询(SELECT)而不是休眠,再次执行查询 - 并且它再次发生。 PROCESSLIST 中显示的“时间”会在每次睡眠后不断重置。
如何让Mysql自动杀掉这样的进程?我想这样的进程在 PHP 脚本超时后仍然存在(它还执行 CURL 任务)。
[编辑 - 回答 cmets]
查询:
SELECT COUNT(*) FROM keywords WHERE updated < '2018-05-03 00:00:00' AND status = '0' AND active = '1;
列:更新的 (DATETIME)、状态 (INT) 和活动的 (BOOL) 是 INDEXED。
“关键字”表中有大约 12 万条记录。
我的 PHP 脚本正在通过 PDO 连接到 MySQL。
我还设置了以下变量:
interactive_timeout = 180
wait_timeout = 180
【问题讨论】:
-
你可以杀死他们 stackoverflow.com/questions/20048017/… 或者你可以修复它们.. 你的电话
-
我每天都在杀死这些进程......我应该修复什么?查询(我的意思是列)已正确编入索引。我还应该尝试做什么?
-
这里可能有一些有用的信息:stackoverflow.com/questions/2407732/…
-
查询内容是什么?什么是数据库结构?查询的概况是什么?你真的没有提供足够的信息来猜测解决方案。
-
是否使用持久连接连接到您的数据库?