zoukankan      html  css  js  c++  java
  • mysql优化 SHOW PROCESSLIST命令详解

    最近程序运行巨卡,通常排查方式:查看服务器网络、内存使用情况、cpu使用情况、mysql线程占用情况,查找程序本身原因。

    而查看mysql的情况则用到:SHOW PROCESSLIST

    SHOW PROCESSLIST/SHOW FULL PROCESSLIST

    SHOW PROCESSLIST:显示哪些线程正在运行

    如果您有root权限,您可以看到所有线程。否则,您只能看到登录的用户自己的线程,通常只会显示100条如果想看跟多的可以使用full修饰(show full processlist)

    • id       #ID标识,要kill一个语句的时候很有用
    • use      #当前连接用户
    • host     #显示这个连接从哪个ip的哪个端口上发出
    • db       #数据库名
    • command  #连接状态,一般是休眠(sleep),查询(query),连接(connect)
    • time     #连接持续时间,单位是秒
    • state    #显示当前sql语句的状态
    • info     #显示这个sql语句

    常用的几条sql

    1:根据客户ip分组,查看哪个客户端的链接数量最多

    select client_ip,count(client_ip) as client_num from (select substring_index(host,':' ,1) as client_ip from information_schema.processlist ) as connect_info group by client_ip order by client_num desc;

    2:查看正在执行的线程,并按 Time 倒排序,看看有没有执行时间特别长的线程

    select * from information_schema.processlist where Command != 'Sleep' order by Time desc;

    3:找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀 (此处 60秒 可根据自己的需要调整SQL)可复制查询结果到控制台,直接执行,杀死堵塞进程

    select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 60 order by Time desc;

     

  • 相关阅读:
    bootstrap 模态框一闪而过的问题
    ${requestScope.paramName} 与 ${param.name}
    Android控件
    质量属性
    android基础知识复习一
    Numpy基础篇二
    miniconda 搭建tensorflow框架
    Numpy基础篇一
    pandas 数据索引与选取
    《架构漫谈》阅读笔记
  • 原文地址:https://www.cnblogs.com/1439107348s/p/14267112.html
Copyright © 2011-2022 走看看