zoukankan      html  css  js  c++  java
  • MySQL通过show processlist查看项目的mysql写的有问题

    如果是因为sql问题引起的项目查询慢,可以通过以下方法进行查看并及时优化sql 语句,达到项目优化的效果。
     
    1.登录项目终端:
     
    切换到mysql bin目录;
     
    用到的命令:
     
    cd 切换目录;
     
    ls 列出 当前目录下的内容;
     
    2.到mysql 的bin目录下后 登录数据库:
     
    mysql [-u username] [-h host] [-p password] [dbname]
     
    mysql -u  -h   -p  
     
    3.用 show processlist;语句
     
    会显示当前正在进行的线程,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别出有问题的查询语句等
     
    显示哪些线程正在运行。
     
    show processlist;只列出前100条,如果想全列出请使用show full processlist; 
     
    您也可以使用mysqladmin processlist语句得到此信息。
     
    如果您有SUPER权限,您可以看到所有线程。
     
    否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。
     
    如果您不使用FULL关键词,则只显示每个查询的前100个字符。
     
    以下图片各列的含义:
     
    ①.id列,用户登录mysql时,系统分配的"connection_id",可以使用函数connection_id()查看
     
    ②.user列,显示当前用户。如果不是root,这个命令就只显示用户权限范围的sql语句
     
    ③.host列,显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现问题语句的用户
     
    ④.db列,显示这个进程目前连接的是哪个数据库
     
    ⑤.command列,显示当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接(connect)等
     
    ⑥.time列,显示这个状态持续的时间,单位是秒
     
    ⑦.state列,显示使用当前连接的sql语句的状态,很重要的列。state描述的是语句执行中的某一个状态。一个sql语句,以查询为例,可能需要经过copying to tmp table、sorting result、sending data等状态才可以完成
     
    ⑧.info列,显示这个sql语句,是判断问题语句的一个重要依据
     
    0
     
     
     
    如果有异常的sql ,会显示在info 列里面,我们可以拿到异常sql 去数据表进行查询;
    给sql前加上desc可查看sql查询状态
    0
    rows表示此查询扫描数据表的记录数。
     
    拿到此信息后可对sql或者数据表进行优化,以加速sql查询速度,达到项目优化的效果。
     
     
     
  • 相关阅读:
    Hibernate 中出现 XXXX is not mapped 问题
    记录一下表格用poi的导出word
    [转帖] 悟透JavaScript
    JAVA读取Oracle中的blob图片字段并显示
    vs2010代码段,用得飞起~
    FontFamily获取中文名字
    vs2010快捷键
    WPF Binding基础
    Binding对数据的转换和校验
    WPF个UI元素
  • 原文地址:https://www.cnblogs.com/honely/p/15071157.html
Copyright © 2011-2022 走看看