`

MySQL 运维笔记(一)—— 终止高负载SQL

阅读更多

数据库表体积大了,负载高了,难免一个sql出去耗时延长。半个月前,一个凌晨定时任务跑了8小时,突然手足无措。最后找DBA协助,直接干掉了这个sql进程。

其实,这并不复杂。


首先,找出占用CPU时间过长的SQL

show processlist;



 假定最后一条sql处于Query状态,且Time时间过长,就锁定它的ID,直接干掉即可。

 

然后,杀死进程:

kill QUERY  4487855;

 这就大功告成了!

 

 参考
KILL [CONNECTION | QUERY] thread_id
 
  • 大小: 22.9 KB
7
4
分享到:
评论
6 楼 奋斗的西瓜 2012-09-20  
学习了  
5 楼 snowolf 2012-09-18  
LucasLee 写道
这就完了?
怎么也要查看一下这个进程正在执行的是什么SQL,然后查查为什么会执行这么久吧?

不好举例,涉及公司数据安全。当时的情况是,update语句对整个表(上百万条数据)进行更新,虽然是用户并发低谷期,但数据量过大,且子查询条件无索引(TimeStamp)导致Update超时,居然执行8小时还没完。一晚上短信报警,爬起来就干掉了了!
4 楼 LucasLee 2012-09-18  
这就完了?
怎么也要查看一下这个进程正在执行的是什么SQL,然后查查为什么会执行这么久吧?
3 楼 estn_h 2012-09-18  
持续ing~~
2 楼 hngmduyi 2012-09-18  
1 楼 makemyownlife 2012-09-18  
ok 学习到了

相关推荐

Global site tag (gtag.js) - Google Analytics