MySQL如何查看元數(shù)據(jù)鎖阻塞在哪里
MySQL如何查看元數(shù)據(jù)鎖阻塞在哪里
操作步驟:
1、session 1 執(zhí)行:
start transaction; select *from t1;
2、session 2 在第1步執(zhí)行完后執(zhí)行:
drop table t1;
此時(shí)session 2的drop語(yǔ)句被阻塞。那么怎么分析查看元數(shù)據(jù)鎖呢?
方法:
1)執(zhí)行show processlist;,可以看到drop語(yǔ)句在等待元數(shù)據(jù)鎖
mysql> show processlist; +----+-------------+-----------+------+---------+---------+-----------------------------------------------------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+------+---------+---------+-----------------------------------------------------------------------------+------------------+ | 5 | system user | | NULL | Connect | 1050234 | Waiting for master to send event | NULL | | 6 | system user | | NULL | Connect | 983193 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL | | 8 | root | localhost | yzs | Sleep | 93 | | NULL | | 9 | root | localhost | yzs | Query | 3 | Waiting for table metadata lock | drop table t1 | | 10 | root | localhost | NULL | Query | 0 | init | show processlist | +----+-------------+-----------+------+---------+---------+-----------------------------------------------------------------------------+------------------+ 5 rows in set (0.00 sec)
2)可以看到當(dāng)前正在運(yùn)行的事務(wù)的線程是trx_mysql_thread_id:8,那么這個(gè)線程在干什么呢?
mysql> select *from information_schema.innodb_trx\G *************************** 1. row *************************** trx_id: 17683 trx_state: RUNNING trx_started: 2017-10-18 05:32:46 trx_requested_lock_id: NULL trx_wait_started: NULL trx_weight: 0 trx_mysql_thread_id: 8 trx_query: NULL trx_operation_state: NULL trx_tables_in_use: 0 trx_tables_locked: 0 trx_lock_structs: 0 trx_lock_memory_bytes: 320 trx_rows_locked: 0 trx_rows_modified: 0 trx_concurrency_tickets: 0 trx_isolation_level: REPEATABLE READ trx_unique_checks: 1 trx_foreign_key_checks: 1 trx_last_foreign_key_error: NULL trx_adaptive_hash_latched: 0 trx_adaptive_hash_timeout: 10000 trx_is_read_only: 0 trx_autocommit_non_locking: 0 1 row in set (0.03 sec)
3)可以看到這個(gè)線程執(zhí)行的是select語(yǔ)句,如果執(zhí)行show engine innodb status;可以看到該事務(wù)處于sleep狀態(tài),也就是說(shuō)這個(gè)事務(wù)語(yǔ)句執(zhí)行完了,但是沒(méi)有提交。
執(zhí)行kill 8,將該事務(wù)的線程殺掉就可以了?;蛘邫z查業(yè)務(wù)的SQL語(yǔ)句,檢查下是否有未提交的SQL語(yǔ)句。
mysql> select *from performance_schema.events_statements_current\G *************************** 1. row *************************** THREAD_ID: 27 EVENT_ID: 15 END_EVENT_ID: 15 EVENT_NAME: statement/sql/select SOURCE: mysqld.cc:962 TIMER_START: 1050544992900922000 TIMER_END: 1050544993740836000 TIMER_WAIT: 839914000 LOCK_TIME: 196000000 SQL_TEXT: select *from t1 DIGEST: 1aa32397c8ec37230aed78ef16126571 DIGEST_TEXT: SELECT * FROM `t1` CURRENT_SCHEMA: yzs OBJECT_TYPE: NULL OBJECT_SCHEMA: NULL OBJECT_NAME: NULL OBJECT_INSTANCE_BEGIN: NULL MYSQL_ERRNO: 0 RETURNED_SQLSTATE: NULL MESSAGE_TEXT: NULL ERRORS: 0 WARNINGS: 0 ROWS_AFFECTED: 0 ROWS_SENT: 10 ROWS_EXAMINED: 10 CREATED_TMP_DISK_TABLES: 0 CREATED_TMP_TABLES: 0 SELECT_FULL_JOIN: 0 SELECT_FULL_RANGE_JOIN: 0 SELECT_RANGE: 0 SELECT_RANGE_CHECK: 0 SELECT_SCAN: 1 SORT_MERGE_PASSES: 0 SORT_RANGE: 0 SORT_ROWS: 0 SORT_SCAN: 0 NO_INDEX_USED: 1 NO_GOOD_INDEX_USED: 0 NESTING_EVENT_ID: NULL NESTING_EVENT_TYPE: NULL
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- MySQL 元數(shù)據(jù)鎖及問(wèn)題排查的解決
- 一文搞懂MySQL元數(shù)據(jù)鎖(MDL)
- MySQL和Oracle的元數(shù)據(jù)抽取實(shí)例分析
- 配置hive元數(shù)據(jù)到Mysql中的全過(guò)程記錄
- 詳細(xì)分析mysql MDL元數(shù)據(jù)鎖
- Mysql元數(shù)據(jù)如何生成Hive建表語(yǔ)句注釋腳本詳解
- MySQL 元數(shù)據(jù)查看及實(shí)例代碼
- 調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法
- MySQL 元數(shù)據(jù)的使用小結(jié)
相關(guān)文章
mysql 動(dòng)態(tài)執(zhí)行存儲(chǔ)過(guò)程語(yǔ)句
MSSQL中動(dòng)態(tài)執(zhí)行sql語(yǔ)句可以使用EXEC()函數(shù)。MSSQL中也有類(lèi)似的函數(shù)EXECUTE(),不過(guò)不同的是MYSQL中動(dòng)態(tài)執(zhí)行存儲(chǔ)過(guò)程語(yǔ)句與MSSQL還是有區(qū)別的。2009-07-07windows下MySQL 5.7.3.0安裝配置圖解教程(安裝版)
這篇文章主要介紹了windows下MySQL 5.7.3.0安裝配置圖解教程(安裝版),需要的朋友可以參考下2016-04-04DB為何大量出現(xiàn)select @@session.tx_read_only 詳解
這篇文章主要給大家介紹了關(guān)于DB為何大量出現(xiàn)select @@session.tx_read_only 的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04MySQL實(shí)戰(zhàn)之Insert語(yǔ)句的使用心得
這篇文章主要給大家介紹了關(guān)于MySQL實(shí)戰(zhàn)之Insert語(yǔ)句的使用心得的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10MySQL之FIND_IN_SET()的用法及說(shuō)明
這篇文章主要介紹了MySQL之FIND_IN_SET()的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Ubuntu18.0.4下mysql 8.0.20 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Ubuntu18.0.4下mysql 8.0.19 安裝配置方法圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05