mysql查詢未提交事務的sql語句

2021-10-22 06:45:31 字數 2337 閱讀 3426

mysql查詢未提交事務的sql語句,找出未提交事務執行的sql語句

mysql開啟事務後沒有提交就退出,事務長時間running狀態,程序又處於sleep狀態,有可能後續導致其他事物超時失敗

能找到事物執行的sql語句的話就很容易定位到程式中錯誤的**

檢視所有事務

檢視程序資訊

查詢程序狀態,發現sleep中,並沒有執行,由此可以確認該事務沒有提交

查詢未提交的事務執行的sql語句

最簡單粗暴也最靠譜的方式就是開啟通用日誌,其他方式不容易查出來,缺點是得開啟之後才能記錄到

# 檢視general log配置

show variables like '%general_log%'

## 開啟general log

set global general_log = 1;

通用日誌會記錄所有sql資訊,資料量很大,建議只在排查錯誤時開啟,線上關閉

找到程序號跟時間對應的記錄

通用日誌資訊

通過日誌發現,這個程序開啟了事務,插入了一條資料,而沒有提交事務,導致事物一直處於執行狀態

發現**中開啟了事務,沒有提交

mysql檢視未提交的事務程序

查詢 正在執行的事務 select from information schema.innodb trx 檢視正在鎖的事務 select from information schema.innodb locks 檢視等待鎖的事務 select from information schema.inno...

刪除oracle未提交的事務

先查詢出未提交的事務 select dob.object name table name,lo.session id vss.serial 刪除號,lo.locked mode,lo.session id,vss.serial vss.action action,vss.osuser osuser,...

事務未提交 別人能讀取到嗎 事務提交

事務特性 1 原子性 事務的所有操作要麼全部成功,要麼全部失敗。3 隔離性 好比執行緒的鎖,不同使用者同時操作同一張表的資料時,只會為乙個使用者開啟事務,其他使用者則不能在此事務未完成的期間進行對該錶的操作。併發的事務會被相互隔離 由於事務不被提交時可以回滾的。因此事務必須有隔離性,否則修改資料時的...