在我杀死我的客户端后,MySQL继续处理查询数小时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在我杀死我的客户端后,MySQL继续处理查询数小时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1374字,纯文字阅读大概需要2分钟。
内容图文
![在我杀死我的客户端后,MySQL继续处理查询数小时](/upload/InfoBanner/zyjiaocheng/897/0aefc67aa1994ef79610d3675ac55cff.jpg)
嗨,我有一个拥有1000万行且有很多触发器的MySQL数据库. php客户端连接到mysql和INSERT每秒数百行.
当客户端运行了几个小时,我终止客户端时,使用mytop我看到交易仍在发生,甚至是新的交易.它会在“赶上”之前持续数小时.
现在作为DBA,我如何查看这个“返回日志”?它被列为什么变量? my.cnf参数会控制它吗?为什么会发生这种情况?我以为
解决方法:
这是一个非常随意的解释……
MySQL的工作原理如下:
您向它发送一个结果集大于其缓冲区的查询,因此它会在磁盘上创建一个临时表来保存数据.这是一个昂贵的过程,因为它通常是从相同的磁盘读取,交换和写入,除非有意地配置不同.尽管如此,表演坦克.所以现在你在想“我必须做点什么吧?”所以你杀了你的PHP进程.现在的问题是“您的查询过程是否被杀死,或者它正在运行还是现在正在释放空间?”要了解您的进程处于什么状态,您需要以root身份或具有PROCESS权限的用户身份运行:
SELECT TIME,STATE,ID,HOST,DB,INFO
FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE INFO IS NOT NULL
ORDER BY TIME DESC LIMIT 3\G
这将为您提供前三个运行时间最长的流程.只需增加限制即可显示更多内容.如果你真的想要结束有问题的过程,请查看ID字段,然后看KILL#.
例如.
*************************** 1. row ***************************
TIME: 0
STATE: executing
ID: 4
HOST: localhost
DB: NULL
INFO: SELECT TIME,STATE,ID,HOST,DB,INFO FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO IS NOT NULL ORDER BY TIME DESC
1 row in set (0.03 sec)
mysql> KILL 4;
这不会简单地杀死使用该ID发生的所有事情,但至少你可以放心,它肯定会被设置为“释放项目”或等同物的状态.
内容总结
以上是互联网集市为您收集整理的在我杀死我的客户端后,MySQL继续处理查询数小时全部内容,希望文章能够帮你解决在我杀死我的客户端后,MySQL继续处理查询数小时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。