mysql長事務的處理

2021-10-04 02:09:06 字數 1018 閱讀 4019

1、排查業務端

1)業務是否確實需要使用長事務

比如:刪除不必要的唯讀事務。

2)對使用長事務的**檢測是否有自動提交事務(可在mysql的general_log中檢視是否開啟);

注意:最好在業務功能測試時輸出general_log,分析日誌行為提前發現問題。

自動提交-setautocommit=1;

檢視是否開啟事務:

3)確實需要的,需確認 業務端 是否設定執行時間,對事務超時異常是否有處理

2、排查資料端

1)監控information_schema.innodb_trx 表,設定長事務閾值,超過就報警或者kill

排查表:innodb_trx、innodb_locks、innodb_lock_waits

參考文件:

2)percona的pt-kill工具

從show processlist 中讀取滿足條件的連線執行操作。

參考文件:percona-

3)使用mysql5.6或更新版本時,可設定innodb_undo_tablespaces設定成2(或更大的值),方便大事務回滾段清理。

MySQL長事務處理辦法

長事務 long lived transactions 顧名思義,就是執行時間較長的事務。在innodb中可以查詢到當前執行中的事務。select from information schema.innodb trx 在訪問表時,innodb會自動給加上元資料鎖 meta data lock,mdl...

mysql長事務查詢 智庫 資料庫長事務詳解

在資料庫的日常維護中,我們常常會聽說資料庫 長事務 這個詞,那麼何為長事務?長事務是如何產生的?長事務對資料庫有什麼影響?如何防止長事務的產生?本文就根據筆者的運維經驗談談對資料庫長事務的理解。1 什麼是事務 事務是關係型資料庫中的乙個邏輯工作單元,它由乙個或多個sql語句組成,這些語句要麼全都執行...

MySQL的事務的處理

步驟 1.開啟事務 start transaction 當我們開啟乙個事務的時候,我們對sql的操作都發生在記憶體中,但是沒有真正的反饋到資料庫磁碟的檔案中!2.回滾 rollback 回滾,就是恢復到事務開啟之前的最原始的狀態!注意 回滾操作會自動的關閉乙個事務,如果想再次執行事務,需要重新開啟事...