最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL kill指令使用指南

 更新時間:2020年12月28日 09:41:36   作者:掘金小勇士  
這篇文章主要介紹了MySQL kill指令的使用方法,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
KILL [CONNECTION | QUERY] processlist_id

在Mysql中每個連接都是單獨線程運行,可以使用語句 KILL processlist_id statement.來終止語句執(zhí)行。

KILL允許可選 CONNECTION或QUERY 修飾符:

  • KILL CONNECTION ,KILL與無修飾符相同 :終止與給定關(guān)聯(lián)的連接 processlist_id,在終止該連接正在執(zhí)行的任何語句之后。
  • KILL QUERY終止連接當前正在執(zhí)行的語句,但保持連接本身不變。

使用show processlist 查看所有id

Kill 指令使用

如果我們應用執(zhí)行SQL后,由于鎖select for update或者數(shù)量太大,導致執(zhí)行SQL卡在數(shù)據(jù)庫,此時想取消該SQL怎么辦?可以通過kill命令停止mysql線程或者是取消該SQL執(zhí)行,此處需要到底是執(zhí)行 kill threadId指令還是 kill query theadId指令?

kill與kill query 最大區(qū)別是是否取消該連接上執(zhí)行的所有sql,即是否關(guān)閉該線程,如果關(guān)閉該線程即對應JDBC中statement關(guān)閉

-- 數(shù)據(jù)庫鎖住acctno=13記錄 然后執(zhí)行如下更新語句
update test set acctname ='12' where acctno=13

show processlist查看正在執(zhí)行sql的線程id

如果想取消該SQL執(zhí)行,可以使用命令 kill query 407 取消SQL執(zhí)行,執(zhí)行后407線程并不會消失,如果該連接上有SQL執(zhí)行會繼續(xù)執(zhí)行;但是如果使用kill 407 ,407線程會消失。使用時需要注意二者差異。

線程id除了通過show processlist查看,也可以使用編程的方式獲取threadId

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

Statement cancel方法

我們使用JDBC編程方式對數(shù)據(jù)庫進行操作時,可以也可以使用Statement對象的cancel方法進行取消,Mysql驅(qū)動內(nèi)部也是發(fā)送Kill query threadId 指令,Mysql驅(qū)動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() {
              }
            });
            //驅(qū)動內(nèi)部使用 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());
    }
  }

客戶端工具執(zhí)行

客戶端工具執(zhí)行SQL后取消執(zhí)行,有些工具發(fā) kill 命令 有些發(fā)kill query 指令,可以通過抓包工具驗證下Navicat工具發(fā)送什么指令,抓包工具推薦Wireshark,很強大。

是kill 指令,對應的線程ID為407,也有部分工具是發(fā)送的kill query指令。

以上就是MySQL kill指令使用指南的詳細內(nèi)容,更多關(guān)于MySQL kill指令的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程

    Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程

    在應用中為了從不同的視圖去分析數(shù)據(jù),會使用不同的方案去查詢數(shù)據(jù)庫,橫表和縱表的相互轉(zhuǎn)換就是其中一個常見的情景,這篇文章主要給大家介紹了關(guān)于Mysql縱表轉(zhuǎn)換為橫表的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • mssql轉(zhuǎn)換mysql的方法小結(jié)

    mssql轉(zhuǎn)換mysql的方法小結(jié)

    mssql轉(zhuǎn)換mysql的方法小結(jié),需要的朋友可以參考下。
    2011-03-03
  • (MariaDB)MySQL數(shù)據(jù)類型和存儲機制全面講解

    (MariaDB)MySQL數(shù)據(jù)類型和存儲機制全面講解

    下面小編就為大家分享一篇(MariaDB)MySQL數(shù)據(jù)類型和存儲機制全面講解,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • mysql8.0.27配置步驟以及注意事項

    mysql8.0.27配置步驟以及注意事項

    這篇文章主要給大家介紹了關(guān)于mysql8.0.27配置步驟以及注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • mysql5.7以上版本配置my.ini的詳細步驟

    mysql5.7以上版本配置my.ini的詳細步驟

    這篇文章主要為大家詳細介紹了mysql5.7以上版本配置my.ini的詳細步驟,文中每一步介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySQL事務的ACID特性以及并發(fā)問題方案

    MySQL事務的ACID特性以及并發(fā)問題方案

    這篇文章主要介紹了MySQL事務的ACID特性以及并發(fā)問題方案,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • MySQL定時備份數(shù)據(jù)庫操作示例

    MySQL定時備份數(shù)據(jù)庫操作示例

    這篇文章主要介紹了MySQL定時備份數(shù)據(jù)庫操作,結(jié)合實例形式分析了MySQL定時備份數(shù)據(jù)庫相關(guān)命令、原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下
    2020-03-03
  • 分析一條sql的性能的標準總結(jié)

    分析一條sql的性能的標準總結(jié)

    在本篇文章里小編給各位分享了關(guān)于分析一條sql的性能的相關(guān)知識點總結(jié)內(nèi)容,有興趣的朋友們學習下。
    2019-07-07
  • MySQL中查詢?nèi)罩九c慢查詢?nèi)罩镜幕緦W習教程

    MySQL中查詢?nèi)罩九c慢查詢?nèi)罩镜幕緦W習教程

    這篇文章主要介紹了MySQL中查詢?nèi)罩九c慢查詢?nèi)罩镜幕緦W習教程,文中還提到了MySQL自帶的Mysqldumpslow日志分析工具的使用,需要的朋友可以參考下
    2015-12-12
  • ubuntu?22.04安裝mysql?8.0步驟與避坑指南

    ubuntu?22.04安裝mysql?8.0步驟與避坑指南

    MySQL最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應用方面MySQL是最好的關(guān)系數(shù)據(jù)庫管理系統(tǒng)應用軟件之一,這篇文章主要給大家介紹了關(guān)于ubuntu?22.04安裝mysql?8.0步驟與避坑指南的相關(guān)資料,需要的朋友可以參考下
    2023-12-12

最新評論

临武县| 米易县| 蕉岭县| 濉溪县| 十堰市| 曲松县| 乐陵市| 云和县| 井研县| 滨州市| 钦州市| 江永县| 南郑县| 天峻县| 乐平市| 通许县| 拜城县| 扶余县| 涟水县| 射阳县| 富阳市| 修武县| 松桃| 乌兰察布市| 汾阳市| 扬州市| 江源县| 集安市| 永吉县| 西峡县| 贞丰县| 黄梅县| 上蔡县| 齐河县| 土默特左旗| 修武县| 玉田县| 岗巴县| 霞浦县| 台南县| 绥德县|