首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL Sleep进程处理(一)

作为一个MySQL的开发者,日常工作中免不了会处理一些数据库运维或者监控的事情。查看一下正在执行的SQL语句,看一下SQL语句的执行状态,是否存在锁的情况,了解一下执行了多长时间,所以你一定会知道:

这个时候你会发现,进程中有很多sleep的进程,存在了很长时间并且一直存在着,浪费了很多的内存、CPU资源,同时这些不干活的进程铺满了屏幕,影响了你分析正在执行的SQL。下面我们就sleep进程具体研究一下。

Thread Command Values

常见的一些线程命令值

The thread is executing a statement.

Execute

The thread is executing a prepared statement.

The thread is waiting for the client to send a new statement to it.

不知道MySQL为什么叫这些为命令,可能是为了与它更细的状态区分吧。看到这些sleep的进程,该怎样去处理他们呢?下面介绍两种方法。

01

修改数据库系统设置

查看一下系统的参数设置,重点关注interactive_timeout & wait_timeout,系统默认是8个小时,很明显这个时间很长,所以sleep进程一直挂着而不会自动结束。

简单的方法直接进行参数设置,一次生效

如果想让设置永久生效,需要修改配置文件

编辑my.cnf文件,增加wait_timeout和interactive_timeout参数设置,重启数据库

修改完成后可验证查看是够修改成功。

02

shell结束sleep进程

以上是MySQL提供的机制,自动结束sleep进程,设置简单,一劳永逸。不过这种设置是全局的,不够灵活,下一次介绍如果通过shell结束sleep进程,并可以根据一些特定的条件筛选。

下期再见

如果你喜欢的话,请关注

如果你觉得是干货,请收藏

如果你觉得值得分享,请转发

欢迎大家留言

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190106G0V8XC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券