批量 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日

相关文章

  • 使用python和Django完成博客数据库的迁移方法

    为了完成使用Python和Django完成博客数据库的迁移,需要按步骤进行。 步骤1:确定迁移方案 一个成功的数据迁移,必须基于一个协议,它定义了数据如何转移。在Django中,使用“迁移”这个概念来处理模型数据的变化,它会跟踪模型的版本变化并在数据库中应用这些变化。 在进行具体的迁移操作前,我们需要先确定好整个迁移方案,根据实际情况和需求制定好迁移流程,具…

    database 2023年5月21日
    00
  • ssm项目改造spring boot项目完整步骤

    下面我将详细讲解“ssm项目改造spring boot项目完整步骤”的完整攻略。 第一步:项目结构调整 在进行ssm项目改造为spring boot项目之前,需要对项目结构进行调整。具体步骤如下: 删除旧的配置文件,在src/main/resources文件夹下新建application.properties或application.yml配置文件。 针对旧…

    database 2023年5月21日
    00
  • Windows下redis下载、redis安装及使用教程

    Windows下Redis下载、Redis安装及使用教程 下载Redis 进入Redis官网:https://redis.io/ 点击Download选项卡,找到Windows版本的Redis软件,或者直接访问https://github.com/microsoftarchive/redis/releases 下载适合自己的版本。 下载对应的Redis压缩包…

    database 2023年5月22日
    00
  • MySQL日期时间函数知识汇总

    MySQL日期时间函数知识汇总 概述 MySQL提供了丰富的日期时间函数,包括获取当前时间、日期比较、日期格式转换等。掌握这些函数,能够让我们更为方便地操作日期和时间。 在本文中,我们将针对MySQL日期时间函数进行详细讲解,为大家提供完整的攻略。 获取当前时间 NOW() 函数可以返回当前日期和时间。 SELECT NOW(); — 返回当前日期和时间(…

    database 2023年5月22日
    00
  • CentOS下MySQL的彻底卸载的几种方法

    这里我为大家详细讲解下“CentOS下MySQL的彻底卸载的几种方法”的完整攻略。 一、关闭MySQL服务 在开始操作之前,需要先关闭MySQL服务。可以使用以下命令来关闭MySQL服务: sudo systemctl stop mysqld 二、使用yum命令卸载MySQL 使用yum命令可以方便地卸载软件。对于CentOS系统下的MySQL,我们可以使用…

    database 2023年5月22日
    00
  • MySQL的意向共享锁、意向排它锁和死锁

    MySQL意向锁和死锁攻略 意向锁 MySQL中有两种意向锁:意向共享锁(IS)和意向排它锁(IX)。当一个事务请求一张表的排它锁或者共享锁时,MySQL会先判断表是否已经被其它事务加了锁。若没有加锁,则直接获取锁;若被加锁,则会判断待加的锁类型。若是要请求共享锁,则会在表上加意向共享锁(IS);若是要请求排它锁,则会在表上加意向排它锁(IX)。意向锁只是一…

    database 2023年5月19日
    00
  • Linux下mysql异地自动备份的方法

    下面是详细的Linux下mysql异地自动备份的方法攻略: 步骤一:安装并配置mysqldump 首先,需要在Linux系统中安装mysqldump工具。在命令行中输入以下命令: sudo apt-get update sudo apt-get install mysql-client 安装完成后,需要设置mysqldump的用户名和密码。在命令行中输入以下…

    database 2023年5月22日
    00
  • Spring @Transactional事务失效的原因分析

    让我们来详细讲解 Spring @Transactional事务失效的原因分析。事务是应用程序中非常重要的概念,对于保证数据一致性具有至关重要的作用。Spring框架提供了@Transactional注解作为声明式事务管理的方式,可以极大的减轻我们对事务的控制。然而,有时候我们会发现@Transactional失效了,这时候我们需要对其原因进行分析。 一. …

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