Mysql查詢正在執(zhí)行的事務(wù)以及等待鎖的操作方式
使用navicat
測試學(xué)習(xí):
首先使用set autocommit = 0;
(取消自動提交,則當(dāng)執(zhí)行語句commit或者rollback執(zhí)行提交事務(wù)或者回滾)
在打開一個執(zhí)行update
查詢 正在執(zhí)行的事務(wù):
SELECT * FROM information_schema.INNODB_TRX
根據(jù)這個事務(wù)的線程ID(trx_mysql_thread_id
):
從上圖看出對應(yīng)的mysql
線程:一個94362 (第二個正在等待鎖)另一個是93847(第一個update 正在執(zhí)行 沒有提交事務(wù))
可以使用mysql命令:kill
線程id 殺掉線程
期間如果并未殺掉持有鎖的線程:則第二個update語句提示等待鎖超時
查詢mysql數(shù)據(jù)庫中還可以使用:
查看正在鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
查看等待鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
查詢mysql數(shù)據(jù)庫中存在的進程
[sql] view plain copy
select * from information_schema.`PROCESSLIST`(show processlist;)
概念:
mysql中database
、instance
、session
。
mysql中建立一個會話,不是和具體的數(shù)據(jù)庫相連接,而是跟instance建立會話(即在navicat上執(zhí)行一個查詢,可以查詢端口下對應(yīng)的多個數(shù)據(jù)庫,查詢時數(shù)據(jù)庫名+數(shù)據(jù)表名即可)
在一個物理機上可以建立多個instance
,通過port
來區(qū)分實例。
而一個實例可以建立多個數(shù)據(jù)庫,即一個會話可以操作一個實例上的多個數(shù)據(jù)庫。
jdbc協(xié)議連接數(shù)據(jù)庫:jdbc:mysql://localhost:3306/test
jdbc協(xié)議連接本地上端口為3306實例下的test數(shù)據(jù)庫,則查詢數(shù)據(jù)表時不需要加上數(shù)據(jù)庫的名字。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對本站的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。