window+kill+mysql慢查询_mysql服务器查询慢原因分析方法

MySQL数据库在查询的时候会出现查询结果很慢,超过1秒,项目中需要找出执行慢的sql进行优化,应该怎么找呢,mysql数据库提供了一个很好的方法,如下:

mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来。

1.需要使用打开记录查询慢的sql记录日志:

查看慢查询时间

show variables like'slow%';

查看设置多久是慢查询

show variables like'long%';

修改慢查询时间

set long_query_time=1;

打开慢查询记录日志

set global slow_query_log='ON';

f4db721ad25e58432a9ea9956c855379.png

2.进入到log_file的目录下即可查询哪些sql执行慢了。

3.然后就是进行优化执行慢的sql,加索引、修改查询方式等

4.另外比较有用的命令:

查看哪些线程正在运行

show full processlist

查看最大连接数

show variables like'%max_connections%';

当前连接数

show status like'Threads_connected%';

http://blog.csdn.net/lu_wei_wei/article/details/51242795

在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,就需要kill掉某个正在消耗资源的query语句即可, KILL命令的语法格式如下:

KILL [CONNECTION | QUERY] thread_id

每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。

KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接。KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状。

如果您拥有PROCESS权限,则您可以查看所有线程。如果您拥有超级管理员权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

首先登录mysql,然后使用:

show processlist;

查看当前mysql中各个线程状态

mysql>show processlist;+------+------+----------------------+----------------+---------+-------+-----------+---------------------

| Id | User | Host | db | Command | Time | State |Info+------+------+----------------------+----------------+---------+-------+-----------+---------------------

| 7028 | root | ucap-devgroup:53396 | platform | Sleep | 19553 | |NULL| 8352 | root | ucap-devgroup:54794 | platform | Sleep | 4245 | |NULL| 8353 | root | ucap-devgroup:54795 | platform | Sleep | 3 | |NULL| 8358 | root | ucap-devgroup:62605 | platform | query | 4156 | updating | update t_shop set |

以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.

然后运行kill命令,命令格式如下:

kill id;-示例:

mysql>kill 8358;

ERROR1317 (70100): Query execution was interrupted

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值