批量 kill mysql 中运行时间长的sql

下面是“批量 kill mysql 中运行时间长的sql”的完整攻略:

1. 确认需要 kill 的 SQL 语句

可以通过执行以下命令查看当前 MySQL 实例中运行时间超过5秒的 SQL 语句:

SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO 
FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE COMMAND != 'Sleep' AND TIME > 5 
ORDER BY TIME DESC;

这里需要注意的是,如果查询到的 SQL 语句当前正在执行,那么不建议直接 kill,可以通过优化这些 SQL 语句或者等待执行完成来解决。

2. 批量 kill SQL 语句

在确认需要 kill 的 SQL 语句后,可以通过以下命令来批量 kill:

SELECT CONCAT('KILL ',ID,';') INTO @killquery 
FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE USER = 'username' AND COMMAND != 'Sleep' AND TIME > 10;
PREPARE stmt FROM @killquery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

其中,username 为需要 kill 的用户名称,TIME 为运行时间超过的时长(单位为秒),这里设定的是10秒。

以上命令会生成一些由 KILL+进程 ID 组成的 SQL 语句,并将它们拼接成一条语句,然后通过 PREPAREEXECUTEDEALLOCATE 三个命令执行。执行成功后即可 kill 掉这些长时间运行的 SQL 语句。

以下是两个示例:

  • 示例1:kill 用户 “user1” 中运行时间超过 5 秒的 SQL 语句
SELECT CONCAT('KILL ',ID,';') INTO @killquery 
FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE USER = 'user1' AND COMMAND != 'Sleep' AND TIME > 5;
PREPARE stmt FROM @killquery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
  • 示例2:kill 用户 “user2” 中运行时间超过 20 秒的 SQL 语句
SELECT CONCAT('KILL ',ID,';') INTO @killquery 
FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE USER = 'user2' AND COMMAND != 'Sleep' AND TIME > 20;
PREPARE stmt FROM @killquery;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

以上就是“批量 kill mysql 中运行时间长的SQL”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:批量 kill mysql 中运行时间长的sql - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 如何用Navicat操作MySQL

    下面我来详细讲解如何用Navicat操作MySQL的完整攻略。 准备工作 如果你想使用Navicat操作MySQL,首先你需要下载并安装Navicat软件,安装完成后,打开Navicat软件。接下来,我们需要连接MySQL数据库。 连接MySQL数据库 打开Navicat软件后,点击左上角的“连接”按钮,在下拉菜单中选择“MySQL”。 在弹出的连接设置对话…

    database 2023年5月22日
    00
  • Linux下源码包安装Swoole及基本使用操作图文详解

    Linux下安装Swoole及基本使用操作 1. 安装Swoole源码包 1.1 下载Swoole源码包 在官网下载Swoole源码包,推荐下载最新版,下载链接为:https://github.com/swoole/swoole-src/releases 1.2 安装依赖库 Swoole编译需要openssl、pcre、zlib、libaio等依赖库,使用以…

    database 2023年5月22日
    00
  • 关于Oracle多表连接,提高效率,性能优化操作

    下面我会详细讲解一下“关于Oracle多表连接,提高效率,性能优化操作”的完整攻略。 1. 使用连接语句 在Oracle中,可以使用连接语句(JOIN)进行多表连接。通过连接语句,我们可以将多个表中的数据根据某一字段进行关联,这样就能够查询到更加细致的数据。 1.1 内连接 内连接(INNER JOIN)是连接表中记录的公共部分,并将这些记录合并成一个结果集…

    database 2023年5月19日
    00
  • mssql server .ldf和.mdf的文件附加数据库的sql语句

    当你想要在 MSSQL Server 中使用一个已有的数据文件时,你需要执行附加数据库的 SQL 语句,这个操作需要使用到 .ldf 和 .mdf 文件。下面是详细的步骤和示例说明。 步骤一:备份原数据库(可选) 由于附加数据库会删除数据文件之前数据库的副本,因此在附加数据库之前可选的步骤是备份原数据库,以便出现问题时可以恢复数据。 步骤二:附加数据文件 打…

    database 2023年5月21日
    00
  • MySQL中DATE_FORMAT()函数将Date转为字符串

    MySQL中DATE_FORMAT()函数是将DATE类型字段格式化为指定的日期格式。它的语法如下: DATE_FORMAT(date,format) 其中,date是日期值,format是指定的格式化字符串。下面是几个常用的日期格式化代码: 代码 说明 %Y 年(4位数字) %m 月(01~12) %d 日(01~31) %H 小时(00~23) %i 分…

    database 2023年5月22日
    00
  • CentOS 7.2 Yum编译安装MySQL 5.6

    下面是“CentOS 7.2 Yum编译安装MySQL 5.6”的完整攻略: 1. 安装编译环境 首先,需要安装编译MySQL所需的环境: sudo yum -y install gcc gcc-c++ ncurses-devel perl openssl-devel cmake make 2. 下载MySQL 5.6源码 去官网下载MySQL 5.6的源码…

    database 2023年5月22日
    00
  • MySQL安装与创建用户操作(新手入门指南)

    MySQL安装与创建用户操作(新手入门指南) MySQL是一种常用的关系型数据库管理系统,是开源软件,用户可以免费获取和使用。MySQL具有高度可定制性,易于安装和使用,支持多种语言和操作系统。在本篇文章中,我们将介绍如何在Windows系统下安装和配置MySQL,并创建和授权新用户。 步骤一:MySQL的安装 1.1. 下载MySQL安装程序 首先,在My…

    database 2023年5月22日
    00
  • mysql存储过程事务管理简析

    MySQL存储过程事务管理简析 什么是事务 在关系型数据库中,事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作。事务可以由多个语句组成,这些语句被视为一个整体,如果这些语句都执行成功,则事务完成;如果其中一个语句执行出错,则整个事务将被回滚,影响到的数据会被还原为事务开始前的状态。因此,事务是一种安全且可靠的方法,用于管理数据库中的数据…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部