MySQL查看鎖的實現(xiàn)代碼
MySQL查看鎖的sql
查看數(shù)據(jù)庫狀態(tài)
# 會顯示加鎖的信息等等 show engine innodb status;
查看正在執(zhí)行的線程信息
show full processlist;
查看正在鎖的表
show open tables where in_use > 0; show open tables;
查看鎖的類型、狀態(tài)
show status like '%lock%';
5.0后,增加了3個關于鎖的表
MySQL5.7版本
- INFORMATION_SCHEMA.innodb_trx 當前運行的所有事務
- INFORMATION_SCHEMA.innodb_locks 當前出現(xiàn)的鎖
- INFORMATION_SCHEMA.innodb_lock_waits 鎖等待的對應關系
MySQL8.0版本
8.0后,performance_schema.data_locks代替了INFORMATION_SCHEMA.innodb_locks ,performance_schema.data_lock_waits代替了INFORMATION_SCHEMA.innodb_lock_waits
查看正在鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 5.7 SELECT * FROM performance_schema.data_locks; -- 8.0
查看等待鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; -- 5.7 SELECT * FROM performance_schema.data_lock_waits; -- 8.0
查看行鎖情況
show status like 'InnoDB_row_lock%';
查看表鎖情況
show status like 'table%';
開啟鎖監(jiān)控
開啟監(jiān)控后,可以看到鎖的具體信息以及加鎖順序等,更容易分析死鎖。
方式一:創(chuàng)建監(jiān)控表,監(jiān)控某個數(shù)據(jù)庫
開啟:
CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB;
關閉:
DROP TABLE innodb_lock_monitor;
注意:在未擁有設置全局屬性權限下也可以開啟該功能。
方式二,開啟全局監(jiān)控
開啟:
set GLOBAL innodb_status_output=ON; set GLOBAL innodb_status_output_locks=ON;
關閉:
set GLOBAL innodb_status_output=OFF; set GLOBAL innodb_status_output_locks=OFF;
查看數(shù)據(jù)庫狀態(tài)
show engine innodb status \G;
其他監(jiān)控
標準監(jiān)控(Standard InnoDB Monitor):監(jiān)視活動事務持有的表鎖、行鎖;事務鎖等待;線程信號量等待;文件IO請求;buffer pool統(tǒng)計信息;InnoDB主線程purge和change buffer merge活動。
# 方式一 CREATE TABLE innodb_monitor (a INT) ENGINE=INNODB; DROP TABLE innodb_monitor; # 方式二 set GLOBAL innodb_status_output=ON; set GLOBAL innodb_status_output=OFF;
鎖監(jiān)控(InnoDB Lock Monitor):提供額外的鎖信息。
# 方式一 CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB; DROP TABLE innodb_lock_monitor; # 方式二 set GLOBAL innodb_status_output=ON; set GLOBAL innodb_status_output_locks=ON; set GLOBAL innodb_status_output=OFF; set GLOBAL innodb_status_output_locks=OFF;
表空間監(jiān)控(InnoDB Tablespace Monitor):顯示共享表空間中的文件段以及表空間數(shù)據(jù)結構配置驗證。
CREATE TABLE innodb_tablespace_monitor (a INT) ENGINE=INNODB; DROP TABLE innodb_tablespace_monitor;
表監(jiān)控(InnoDB Table Monitor):顯示內(nèi)部數(shù)據(jù)字典的內(nèi)容。
CREATE TABLE innodb_tablespace_monitor (a INT) ENGINE=INNODB; DROP TABLE innodb_tablespace_monitor;
到此這篇關于MySQL查看鎖的實現(xiàn)代碼的文章就介紹到這了,更多相關MySQL查看鎖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL使用mysqldump實現(xiàn)數(shù)據(jù)完全備份
mysqldump是MySQL自帶的備份工具,可方便實現(xiàn)對MySQL的備份,也可以將指定的庫、表導出為SQL腳本,下面小編就來教大家如何使用mysqldump實現(xiàn)數(shù)據(jù)完全備份吧2023-07-07
MySQL 如何查詢 JSON 數(shù)組是否包含特定的值
本文給大家介紹MySQL 如何查詢 JSON 數(shù)組是否包含特定的值,假設定義了一張表 School,其中字段 stages 為 JSON 類型,本文通過實例代碼給大家詳細講解,感興趣的朋友一起看看吧2023-11-11
Mysql刪除幾億條數(shù)據(jù)表中的部分數(shù)據(jù)的方法實現(xiàn)
在MySQL中刪除一個大表中的數(shù)據(jù)時,需要特別注意操作的性能和對系統(tǒng)的影響,本文主要介紹了Mysql刪除幾億條數(shù)據(jù)表中的部分數(shù)據(jù)的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2025-03-03
MySQL Limit性能優(yōu)化及分頁數(shù)據(jù)性能優(yōu)化詳解
今天小編就為大家分享一篇關于MySQL Limit性能優(yōu)化及分頁數(shù)據(jù)性能優(yōu)化詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
mysql數(shù)據(jù)庫之count()函數(shù)和sum()函數(shù)用法及區(qū)別說明
這篇文章主要介紹了mysql數(shù)據(jù)庫之count()函數(shù)和sum()函數(shù)用法及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
mysql 從一個表中查數(shù)據(jù)并插入另一個表實現(xiàn)方法
這篇文章主要介紹了mysql 從一個表中查數(shù)據(jù)并插入另一個表實現(xiàn)方法的相關資料,需要的朋友可以參考下2017-05-05
Java將excel中的數(shù)據(jù)導入到mysql中
這篇文章主要介紹了Java將excel中的數(shù)據(jù)導入到數(shù)據(jù)庫,小編覺得挺不錯的,現(xiàn)在分享給大家,需要的朋友可以參考借鑒2018-05-05
mysql8.0.23 linux(centos7)安裝完整超詳細教程
這篇文章主要介紹了mysql8.0.23 linux(centos7)安裝完整超詳細教程,本文給介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

