iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL kill指令使用指南
  • 188
分享到

MySQL kill指令使用指南

MySQLkill指令MySQLkill 2022-05-19 23:05:13 188人浏览 八月长安
摘要

KILL [CONNECTioN | QUERY] processlist_id 在Mysql中每个连接都是单独线程运行,可以使用语句 KILL processlist_id statement.来终止语句执


KILL [CONNECTioN | QUERY] processlist_id

Mysql中每个连接都是单独线程运行,可以使用语句 KILL processlist_id statement.来终止语句执行。

KILL允许可选 CONNECTION或QUERY 修饰符:

  • KILL CONNECTION ,KILL与无修饰符相同 :终止与给定关联的连接 processlist_id,在终止该连接正在执行的任何语句之后。
  • KILL QUERY终止连接当前正在执行的语句,但保持连接本身不变。

使用show processlist 查看所有id

Kill 指令使用

如果我们应用执行sql后,由于select for update或者数量太大,导致执行SQL卡在数据库,此时想取消该SQL怎么办?可以通过kill命令停止mysql线程或者是取消该SQL执行,此处需要到底是执行 kill threadId指令还是 kill query theadId指令?

kill与kill query 最大区别是是否取消该连接上执行的所有sql,即是否关闭该线程,如果关闭该线程即对应JDBC中statement关闭


-- 数据库锁住acctno=13记录 然后执行如下更新语句
update test set acctname ='12' where acctno=13

show processlist查看正在执行sql的线程id

如果想取消该SQL执行,可以使用命令 kill query 407 取消SQL执行,执行后407线程并不会消失,如果该连接上有SQL执行会继续执行;但是如果使用kill 407 ,407线程会消失。使用时需要注意二者差异。

线程id除了通过show processlist查看,也可以使用编程的方式获取threadId


 Connection connection = getConnection();
 ((MysqlConnection)connection).getSession().getThreadId();

Statement cancel方法

我们使用JDBC编程方式对数据库进行操作时,可以也可以使用Statement对象的cancel方法进行取消,Mysql驱动内部也是发送Kill query threadId 指令,Mysql驱动cancel方法源码


 public void cancel() throws SQLException {
    try {
      if (this.query.getStatementExecuting().get()) {
        if (!this.isClosed && this.connection != null) {
          JdbcConnection cancelConn = null;
          Object cancelStmt = null;

          try {
            HostInfo hostInfo = this.session.getHostInfo();
            String database = hostInfo.getDatabase();
            String user = StringUtils.isNullOrEmpty(hostInfo.getUser()) ? "" : hostInfo.getUser();
            String passWord = StringUtils.isNullOrEmpty(hostInfo.getPassword()) ? "" : hostInfo.getPassword();
            NativeSession newSession = new NativeSession(this.session.getHostInfo(), this.session.getPropertySet());
            newSession.connect(hostInfo, user, password, database, 30000, new TransactionEventHandler() {
              public void transactionCompleted() {
              }

              public void transactionBegun() {
              }
            });
            //驱动内部使用 KILL QUERY + threadId 指令取消
            newSession.sendCommand((new NativeMessageBuilder()).buildCoMQuery(newSession.getSharedSendPacket(), "KILL QUERY " + this.session.getThreadId()), false, 0);
            this.setCancelStatus(CancelStatus.CANCELED_BY_USER);
          } catch (IOException var13) {
            throw SQLExceptionsMapping.translateException(var13, this.exceptionInterceptor);
          } finally {
            if (cancelStmt != null) {
              ((Statement)cancelStmt).close();
            }

            if (cancelConn != null) {
              ((JdbcConnection)cancelConn).close();
            }

          }
        }

      }
    } catch (CJException var15) {
      throw SQLExceptionsMapping.translateException(var15, this.getExceptionInterceptor());
    }
  }

客户端工具执行

客户端工具执行SQL后取消执行,有些工具发 kill 命令 有些发kill query 指令,可以通过抓包工具验证下Navicat工具发送什么指令,抓包工具推荐Wireshark,很强大。

是kill 指令,对应的线程ID为407,也有部分工具是发送的kill query指令。

以上就是MySQL kill指令使用指南的详细内容,更多关于MySQL kill指令的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL kill指令使用指南

本文链接: https://www.lsjlt.com/news/10075.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL kill指令使用指南
    KILL [CONNECTION | QUERY] processlist_id 在Mysql中每个连接都是单独线程运行,可以使用语句 KILL processlist_id statement.来终止语句执...
    99+
    2022-05-19
    MySQL kill指令 MySQL kill
  • 详解MySQL kill 指令的执行原理
    kill 指令有两种写法 " kill query + 线程 id "、" kill connection(可缺省) + 线程 id "。分别表示关闭指定线程正在执行的语句、断开指定线程...
    99+
    2022-05-27
    MySQL kill MySQL 指令
  • MySQL中kill 指令的执行原理是什么
    这篇文章将为大家详细讲解有关MySQL中kill 指令的执行原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Kill 指令执行原理指令执行特点 一个语句执行过程中...
    99+
    2023-06-08
  • mysql+nosql安装使用指南
    下面讲讲关于mysql+nosql安装使用指南,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完mysql+nosql安装使用指南这篇文章你一定会有所受益。1.安装gcc*2.安装...
    99+
    2022-10-18
  • MySQL学习指南
    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relation...
    99+
    2016-11-25
    MySQL学习指南
  • MySQL 全文索引使用指南
    全文索引需要特殊的查询语法。有没有索引都可以进行全文检索,但是存在索引时会提高匹配的速度。全文索引的索引通过特殊的结构存储以便于找到文档中包含搜索关键字对应的内容。在我们日常生活中,最常见的全文检索就是网络搜索引擎。...
    99+
    2022-05-14
    MySQL 全文索引 MySQL 索引
  • FlexBuilder3使用指南
    FlexBuilder3是一款用于构建Flex应用程序的集成开发环境(IDE),以下是一份FlexBuilder3的使用指南:1. ...
    99+
    2023-09-05
    FlexBuilder3
  • postgresql 使用指南
    centos系列安装分为:yum安装源码安装一、yum安装按照官方的安装文档进行。安装postgresql官方yum仓库yum install https://download.postgresq...
    99+
    2022-10-18
  • Pysvn使用指南
    这是一篇关于pysvn模块的指南. 完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html pysvn是操作Sub...
    99+
    2023-02-20
    Pysvn 使用
  • PHP入门指南:JWT令牌
    随着现代Web应用程序的不断发展,身份验证和安全性变得越来越重要。其中一种流行的方法是使用JWT(JSON Web Tokens)令牌进行身份验证。本文将向您介绍使用PHP实现JWT令牌的基础知识和技术。JWT令牌概述JWT是一个开放标准,...
    99+
    2023-05-21
    PHP 入门指南 JWT令牌
  • cxGrid 使用指南 3
    现在特将收集的一些文章与大家分享,也希望大家不要重蹈我的覆辙.    http://www.delphibbs.com/keylife/iblog_show.aspxid=19911大富翁论坛-富翁笔记-cxgrid (数据库控件)控件...
    99+
    2023-01-31
    使用指南 cxGrid
  • redis使用指南(一)
    redis使用指南一、Redis简介 redis展开来看就是remote directory server。redis是开源的,基于内存的数据结构存储,可以作为数据库,缓存系统或者消息队列。它支持...
    99+
    2022-10-18
  • vue中自定义指令directive的详细指南
    目录一、 什么是自定义指令二、 如何自定义指令钩子函数三、应用场景输入框防抖图片懒加载一键 Copy的功能拖拽总结一、 什么是自定义指令 我们看到的v-开头的行内属性,都是指令,不...
    99+
    2022-11-12
  • 关于Kill指令停掉Java程序的问题
    目录1. Java的原生关闭钩子1.1 使用IDE关闭调试1.2 使用kill -15 指令1.3 使用kill -9 指令2. SpringBoot关闭钩子2.1 使用IDE关闭2...
    99+
    2022-11-12
  • 关于Mysql(MariaDB)的基本操作命令指南
    MYSQL基本命令操作 1.登录方法: mysql -u root -p 2.显示所有数据库: show databases; 3.操作指定数据库(以information_schema为例) use in...
    99+
    2022-10-18
  • MySql的Windows安装指南
    目录 一、MySQL的4大版本 二、软件的下载 三、MySQL8.0 版本的安装 四、配置MySQL8.0 五、配置MySQL8.0 环境变量 六、登录验证 一、MySQL的4大版本 MySQL Community Server 社...
    99+
    2023-10-19
    mysql 数据库
  • gitlab ci cd 命令的使用不完全指南
    目录什么是 CI、CD为什么要使用 CI、CDgitlab CI、CDgitlab CI、CD 中的一些基本概念CI、CD 的工作模型其他一些在个人实践中的一些经验指定特定分支才会执...
    99+
    2023-05-16
    gitlab ci cd命令 gitlab 命令使用指南
  • PHP入门指南:命令模式
    PHP入门指南:命令模式命令模式是一种行为设计模式,它允许您将操作封装为对象。 在这种模式中,命令实现者将一系列参数传递给命令接收者并触发执行。 在本文中,我们将介绍PHP命令模式的基础知识和实例。命令模式概述命令模式可以帮助您创建高度解耦...
    99+
    2023-05-20
    PHP 命令模式 入门指南
  • Vue3<scriptsetuplang=“ts“>使用指南
    本文主要是讲解 <script setup> 与 TypeScript 的基本使用。 <script setup>&n...
    99+
    2022-12-08
    Vue3 <script setup lang=“ts“> Vue3 <script setup>
  • Nokia Booklet 3G使用指南
    在购买联通3G上网卡套餐之前,为了避免买来的usim卡不能使用,我特地先去nokia的booklet支持网站查了查帖子。结果发现有个捷克的兄弟从美国的Bestbuy买了机器,却不能用他的3G sim卡上网,因为3G modem被锁定了,只能...
    99+
    2023-01-31
    使用指南 Nokia Booklet
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作