首页 > 数据库 >mysql如何批量kill慢查询

mysql如何批量kill慢查询

时间:2024-04-17 13:56:34浏览次数:17  
标签:orchestrator 批量 server kill maintenance mysql orange where

原文链接:https://blog.csdn.net/lanyang123456/article/details/122277340

Slow query 慢查询 是指 执行很慢的SQL语句。一般会设置一个阈值,例如,100ms,执行时间超过100ms的都会判定为慢查询。 慢查询是一种危险的信号,MySQL 服务可能很快不可用。当大量出现的时候,应该立即kill。

下文主要介绍如何批量kill 慢查询。

首先,查看有哪些慢查询的SQL:

select *  from information_schema.processlist where command='query' and time > 20;

其中,限定条件中加了command 和 time。

有时候,也不会限制command。
因为,对于慢查询,原因可能是空闲连接仍然占有锁,也需要注意。

例如,下面的语句,空闲连接占用锁,导致慢查一直在增加:

mysql >select *  from information_schema.processlist where time > 20;
+------------+---------------------+--------------------+--------------+---------+------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
| ID         | USER                | HOST               | DB           | COMMAND | TIME | STATE    | INFO                                                                                                                                                                                                                                                       | TIME_MS | ROWS_SENT | ROWS_EXAMINED |
+------------+---------------------+--------------------+--------------+---------+------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
| 1073085839 | orange_server | 10.88.6.26:46595  | orchestrator | Query   |   24 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   23850 |         0 |             0 |
| 1073085838 | orange_server | 10.88.6.26:46600  | orchestrator | Query   |   27 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   26850 |         0 |             0 |
| 1073084469 | orange_manager         | 10.1.10.68:32852 | orchestrator | Sleep   | 1806 |          | NULL                                                                                                                                                                                                                                                       | 1805814 |        16 |            16 |
| 1073085824 | orange_server | 10.88.6.26:46594  | orchestrator | Query   |   21 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   20850 |         0 |             0 |
| 1073085828 | orange_server | 10.88.6.26:46615  | orchestrator | Query   |   25 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   24850 |         0 |             0 |
| 1073085829 | orange_server | 10.88.6.26:46605  | orchestrator | Sleep   |   30 |          | NULL                                                                                                                                                                                                                                                       |   29850 |         0 |             0 |
| 1073085769 | orange_server | 10.88.6.26:46547  | orchestrator | Query   |   26 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   25850 |         0 |             0 |
| 1073085833 | orange_server | 10.88.6.26:46614  | orchestrator | Query   |   23 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   22850 |         0 |             0 |
| 1073085782 | orange_server | 10.88.6.26:46545  | orchestrator | Query   |   22 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   21850 |         0 |             0 |
| 1073085825 | orange_server | 10.88.6.26:46601  | orchestrator | Query   |   29 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   28851 |         0 |             0 |
| 1073085785 | orange_server | 10.88.6.26:46553  | orchestrator | Query   |   28 | updating | 
			delete from
				database_instance_maintenance
			where
				maintenance_active is null
				and end_timestamp < NOW() - INTERVAL 7 DAY |   27851 |         0 |             0 |
+------------+---------------------+--------------------+--------------+---------+------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
11 rows in set (0.02 sec)

当出现大量慢查的时候,很可能将MySQL 服务拖垮。当机立断,应该赶紧kill 慢查询。

批量kill 慢查的方式如下,首先找到慢查询id,然后进行kill。

以下SQL,可以组合成kill 语句select concat('kill ', id,';') from information_schema.processlist where time > 20;,直接拷贝执行即可。

mysql >select concat('kill ', id,';') from information_schema.processlist where time > 20;
+-------------------------+
| concat('kill ', id,';') |
+-------------------------+
| kill 1073080655;        |
| kill 1073085823;        |
| kill 1073084469;        |
| kill 1073085837;        |
| kill 1073085778;        |
| kill 1073085869;        |
| kill 1073085772;        |
| kill 1073085787;        |
| kill 1073085786;        |
| kill 1073085780;        |
| kill 1073085779;        |
| kill 1073085858;        |
+-------------------------+
12 rows in set (0.03 sec)

标签:orchestrator,批量,server,kill,maintenance,mysql,orange,where
From: https://www.cnblogs.com/wszzn/p/18140543

相关文章

  • mysql5.7配置文件
    datadir=/data/mysqlsocket=/var/lib/mysql/mysql.sockDisablingsymbolic-linksisrecommendedtopreventassortedsecurityriskssymbolic-links=0log-error=/data/mysql/mysqld.logpid-file=/data/mysql/mysqld/mysqld.piddefault-time-zone='+8:00'......
  • mysql锁表解锁
    锁表语句LOCKTABLEStbl_nameREAD;锁表怎么解决?MySQL锁表怎么解锁?#1.查进程,主要是查找被锁表的那个进程的IDSHOWPROCESSLIST;#2.kill掉锁表的进程IDKILL10866;//后面的数字是进程的ID====================--锁表解决方法showfullprocesslist;--显示完整......
  • mysql8.0的root用户无了,添加root用户
    修改配置文件,跳过登陆验证sudovim/etc/mysql/mysql.conf.d/mysqld.cnf添加root用户usemysql;insertintouser(User,authentication_string,ssl_cipher,x509_issuer,x509_subject)values('root','','','','');添加权限updateuser......
  • mysql8.0管理用户
    --使用mysql数据库USEmysql;--创建用户CREATEUSERmyuserIDENTIFIEDBY'mypass';--查看用户SELECTuser,host,authentication_stringFROMUSERWHEREUSER='myuser';--修改用户密码updateusersetauthentication_string=''whereuser='m......
  • mysql_笔记
    MySQL安装与连接安装MySQL官网下载MySQL选择社区免费版下载安装选择.msi安装包双击安装,安装过程可以无脑下一步MySQL启动/关闭开始菜单搜索cmd,找到命令提示符,然后使用管理员身份打开输入命令开启:netstartmysql80关闭:netstopmysql80注:命令中的mysql80取决于......
  • 宝塔面板mysql无法启动问题如何解决
    宝塔面板无法启动的问题和解决如果你的宝塔里面的mysql无法启动了,请先看是不是以下的配置问题1.是不是你的3306端口被占用了导致mysql无法启动2.是不是磁盘空间不足导致的无法启动如果都不是这些问题再继续向下看常见问题:1、Mysql安装好后或迁移文件后无法启动2、Mysql异常......
  • MySQL 8:备份&导入【备忘】
    mysql8.0.25、8.0.32--- 序章使用命令(mysqldump)备份旧数据库的数据——sql文件。使用命令(mysql>source)导入备份数据到新数据库。 mysqldump导出为sql文件使用只导出数据不导出结构:整个数据库mysqldump-t数据库名-uroot-p>xxx.sql数据库中某个表my......
  • 如何使用pgloader迁移MySQL数据库至openGauss
    pgloader介绍pgloader是一个数据导入工具,使用COPY命令将数据导入到PostgreSQL。pgloader有两种工作模式,一种是从文件导入,一种是迁移数据库。pgloader在两种情况下都使用PostgreSQL的COPY协议高效的传输数据。openGauss兼容PostgreSQL的通信协议以及绝大部分语法,可......
  • MySQL存储引擎
    MySQL存储引擎存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以称为表类型。查看存储引擎showengines;查看数据库默认存储引擎showvariableslike'%storage_engine%';MySQL存储引擎特性MySQL5.5之前......
  • MySQL的架构以及SQL的执行过程
    MySQL主要分为Server层和存储引擎层Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块binlog日志模块。存储引擎:主要负责数据的存储和读取,采用可以替换的插件式架构......