日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL探秘(五):InnoDB锁的类型和状态查询

發布時間:2024/4/18 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL探秘(五):InnoDB锁的类型和状态查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鎖是數據庫系統區分于文件系統的一個關鍵特性。數據庫使用鎖來支持對共享資源進行并發訪問,提供數據的完整性和一致性。此外,數據庫事務的隔離性也是通過鎖實現的。InnoDB在此方面一直優于其他數據庫引擎。InnoDB會在行級別上對表數據上鎖,而MyISAM只能在表級別上鎖,二者性能差異可想而知。

InnoDB存儲引擎中的鎖

InnoDB存儲引擎實現了如下兩種標準的行級鎖:

  • 共享鎖(S Lock),允許事務讀取一行
  • 排他鎖(X Lock),允許事務刪除或更新一行數據

如果一個事務T1已經獲取了行r的共享鎖,那么另外一個事務T2可以立刻獲得行r的共享鎖,因為讀取并不會改變數據,可以進行并發的讀取操作;但若其他的事務T3想要獲取行r的排他鎖,則必須等待事務T1和T2釋放行r上的共享鎖之后才能繼續,因為獲取排他鎖一般是為了改變數據,所以不能同時進行讀取或則其他寫入操作。

XSX不兼容不兼容S不兼容兼容

InnoDB存儲引擎支持多粒度鎖定,這種鎖定允許事務在行級上的鎖和表級上的鎖同時存在。為了支持在不同粒度上進行加鎖操作,InnoDB存儲引擎支持一種稱為意向鎖的鎖方式。意向鎖是將鎖定的對象分為多個層次,意向鎖意味著事務希望在更細粒度上進行加鎖。

InnoDB存儲引擎的意向鎖即為表級別的鎖。設計目的主要是為了在一個事務中揭示下一行將被請求的鎖類型。其支持兩種意向鎖:

  • 意向共享鎖(IS Lock),事務想要獲得一張表中某幾行的共享鎖
  • 意向排他鎖(IX Lock),事務想要獲得一張表中某幾行的排他鎖

需要注意的是意向鎖是表級別的鎖,它不會和行級的X,S鎖發生沖突。只會和表級的X,S發生沖突。故表級別的意向鎖和表級別的鎖的兼容性如下表所示。

ISIXSXIS兼容兼容兼容不兼容IX兼容兼容不兼容不兼容S兼容不兼容兼容不兼容X不兼容不兼容不兼容不兼容

向一個表添加表級X鎖的時候(執行ALTER TABLE, DROP TABLE, LOCK TABLES等操作),如果沒有意向鎖的話,則需要遍歷所有整個表判斷是否有行鎖的存在,以免發生沖突。如果有了意向鎖,只需要判斷該意向鎖與即將添加的表級鎖是否兼容即可。因為意向鎖的存在代表了,有行級鎖的存在或者即將有行級鎖的存在,因而無需遍歷整個表,即可獲取結果。

如果將上鎖的對象看成一棵樹,那么對最下層的對象上鎖,也就是對最細粒度的對象進行上鎖,那么首先需要對粗粒度的對象上鎖。如上圖所示,如果需要對表1的記錄m行上X鎖,那么需要先對表1加意向IX鎖,然后對記錄m上X鎖。如果其中任何一個部分導致等待,那么該操作需要等待粗粒度鎖的完成。

InnoDB鎖相關狀態查詢

用戶可以使用INFOMATIONSCHEMA庫下的INNODBTRX、INNODBLOCKS和INNODBLOCKWAITS表來監控當前事務并分析可能出現的鎖問題。INNODBTRX的定義如下表所示,其由8個字段組成。

字段名說明trx_idInnoDB存儲引擎內部唯一的事務IDtrx_state當前事務的狀態trx_started事務的開始時間trxrequestlock_id等待事務的鎖ID。如果trx_state的狀態為LOCK WAIT,那么該字段代表當前事務等待之前事務占用的鎖資源IDtrxwaitstarted事務等待的時間trx_weight事務的權重,反映了一個事務修改和鎖住的行數,當發生死鎖需要回滾時,會選擇該數值最小的進行回滾trxmysqlthread_id線程ID,SHOW PROCESSLIST 顯示的結果trx_query事務運行的SQL語句

mysql> SELECT * FROM information_schema.INNODB_TRX\G; ************************************* 1.row ********************************************* trx_id: 7311F4 trx_state: LOCK WAIT trx_started: 2010-01-04 10:49:33 trx_requested_lock_id: 7311F4:96:3:2 trx_wait_started: 2010-01-04 10:49:33 trx_weight: 2 trx_mysql_thread_id: 471719 trx_query: select * from parent lock in share mode

INNODBTRX表只能顯示當前運行的InnoDB事務,并不能直接判斷鎖的一些情況。如果需要查看鎖,則還需要訪問表INNODBLOCKS,該表的字段組成如下表所示。

字段名說明lock_id鎖的IDlocktrxid事務的IDlock_mode鎖的模式lock_type鎖的類型,表鎖還是行鎖lock_table要加鎖的表lock_index鎖住的索引lock_space鎖住的space idlock_page事務鎖定頁的數量,若是表鎖,則該值為NULLlock_rec事務鎖定行的數量,如果是表鎖,則該值為NULLlock_data事務鎖住記錄的主鍵值,如果是表鎖,則該值為NULL

mysql> SELECT * FROM information_schema.INNODB_LOCKS\G; *************************************** 1.row ************************************* lock_id: 7311F4:96:3:2 lock_trx_id: 7311F4 lock_mode: S lock_type: RECORD lock_type: 'mytest'.'parent' lock_index: 'PRIMARY' lock_space: 96 lock_page: 3 lock_rec: 2 lock_data: 1

通過表INNODBLOCKS查看每張表上鎖的情況后,用戶就可以來判斷由此引發的等待情況。當時當事務量非常大,其中鎖和等待也時常發生,這個時候就不那么容易判斷。但是通過表INNODBLOCKWAITS,可以很直觀的反應當前事務的等待。表INNODBLOCK_WAITS由四個字段組成,如下表所示。

字段名說明requestingtrxid申請鎖資源的事務IDrequestinglockid申請的鎖的IDblockingtrxid阻塞的事務IDblockinglockid阻塞的鎖的ID

mysql> SELECT * FROM information_schema.INNODB_LOCK_WAITS\G; *******************************************1.row************************************ requesting_trx_id: 7311F4 requesting_lock_id: 7311F4:96:3:2 blocking_trx_id: 730FEE blocking_lock_id: 730FEE:96:3:2

通過上述的SQL語句,用戶可以清楚直觀地看到哪個事務阻塞了另一個事務,然后使用上述的事務ID和鎖ID,去INNODBTRX和INNDOBLOCKS表中查看更加詳細的信息。

總結

以上是生活随笔為你收集整理的MySQL探秘(五):InnoDB锁的类型和状态查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂av亚洲 | 国产美女精品人人做人人爽 | 国产手机在线 | 男人天堂a在线 | 欧美一区日韩一区 | 国产激情在线 | 欧美88av| 欧美顶级metart裸体全部自慰 | 久久成人免费 | 综合国产精品 | 狠狠操夜夜爽 | 亚洲综合激情另类小说区 | 一区二区三区视频在线观看 | 精品女厕偷拍一区二区 | av综合一区 | 午夜精品一区二 | 伊人久久麻豆 | 玖玖热在线视频 | 亚洲精品白浆高清久久久久久 | 白石茉莉奈番号 | 男人日女人在线观看 | 日日操夜夜爽 | 欧美伦理一区 | 99精品人妻少妇一区二区 | 日本少妇一区二区 | 亚洲天堂av电影 | 国内精品久久久久久久久 | 网站一级片 | 成人高清免费观看 | 视频一二三区 | av手机在线 | 国产中文字字幕乱码无限 | 久久免费福利 | 亚洲综合在 | 亚洲永久在线 | 琪琪伦伦影院理论片 | 日本精品久久久 | a天堂中文在线观看 | 精品视频一二区 | 亚洲激情电影在线 | 日本高清视频一区二区三区 | 好吊操这里只有精品 | 动漫美女露胸网站 | 成人黄色大片在线观看 | 成人免费性视频 | h网站在线 | 男女日日 | 肉丝超薄少妇一区二区三区 | 久久久电影| 国产色无码精品视频国产 | 日本免费www | 亚洲av成人无码网天堂 | 在线观看一区二区三区视频 | 免费毛片播放 | 看一级黄色片 | 午夜一二三| 国产精品久久免费视频 | 免费一区二区三区四区 | 射射射综合网 | 中文字幕在线观看免费视频 | 精品无码久久久久成人漫画 | 国模私拍在线观看 | 国产精品久久一 | 九热在线视频 | 成人久久在线 | 成人午夜网 | 国产中文字幕在线免费观看 | 久久久久国产 | 亚洲成人av影片 | xxx日韩| 美女日批在线观看 | 丁香六月五月婷婷 | 日韩欧美中文字幕在线播放 | 国产伦精品一区二区三区网站 | 国产精品久久久久精 | 久久精品国产99精品国产亚洲性色 | 97视频成人 | 夜夜久久 | 国产最新毛片 | 女同久久另类69精品国产 | 中文字幕乱码在线人视频 | 欧美日韩在线视频一区二区三区 | 亚洲成人免费观看 | 久久资源365 | 公车乳尖揉捏酥软呻吟 | 成年女人18级毛片毛片免费 | 777亚洲| 免费看v片 | 欧美a∨ | 欧美三级不卡 | 91蝌蚪在线 | 欧美国产日韩视频 | 黄网免费在线观看 | 久久亚洲AV成人无码国产人妖 | 麻豆视频软件 | 国产情侣在线视频 | 欧美日韩午夜激情 | 操人小视频 | 国产亚洲精品精品精品 |