mysql 原理 ~ kill session解析


一 簡介:kill session為什么需要很久

二 kill語句分為三類
  1 DML語句
  2 select語句
  3 DDL語句
三  kill都要做什么操作
   1 kill對session的處理
       1 正在執行的session
       2 正在等待的session
   2 把session的狀態改成THD::KILLQUERY -> 給session發送一個信號->線程執行到判斷session狀態的邏輯->執行后續操作終止session
四 kill慢的原因
   1 是非常大的事務,需要回滾操作的成本非常高,還原數據,釋放鎖
   2 是非常慢的sql,需要清理相應的臨時表臨時文件
   3 對於大表的DDL操作,執行的時間越長,回滾的代價越高,有的操作需要清理臨時表.
   4 服務器的IO和cpu壓力太高,導致出現等待,導致kill慢
五 總結
我們可以發現 kill只是發了一個信號,后續處理還是得mysql自身根據不同的操作進行后續處理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM