一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術|

服務器之家 - 數(shù)據(jù)庫 - Mysql - mysql共享鎖與排他鎖用法實例分析

mysql共享鎖與排他鎖用法實例分析

2020-12-06 17:20Andy奧 Mysql

這篇文章主要介紹了mysql共享鎖與排他鎖用法,結合實例形式分析了mysql共享鎖與排他鎖相關概念、原理、用法及操作注意事項,需要的朋友可以參考下

本文實例講述了mysql共享鎖與排他鎖用法。分享給大家供大家參考,具體如下:

mysql鎖機制分為表級鎖和行級鎖,本文就和大家分享一下我對mysql中行級鎖中的共享鎖與排他鎖進行分享交流。

共享鎖又稱為讀鎖,簡稱S鎖,顧名思義,共享鎖就是多個事務對于同一數(shù)據(jù)可以共享一把鎖,都能訪問到數(shù)據(jù),但是只能讀不能修改。

排他鎖又稱為寫鎖,簡稱X鎖,顧名思義,排他鎖就是不能與其他所并存,如一個事務獲取了一個數(shù)據(jù)行的排他鎖,其他事務就不能再獲取該行的其他鎖,包括共享鎖和排他鎖,但是獲取排他鎖的事務是可以對數(shù)據(jù)就行讀取和修改。

對于共享鎖大家可能很好理解,就是多個事務只能讀數(shù)據(jù)不能改數(shù)據(jù),對于排他鎖大家的理解可能就有些差別,我當初就犯了一個錯誤,以為排他鎖鎖住一行 數(shù)據(jù)后,其他事務就不能讀取和修改該行數(shù)據(jù),其實不是這樣的。排他鎖指的是一個事務在一行數(shù)據(jù)加上排他鎖后,其他事務不能再在其上加其他的鎖。mysql InnoDB引擎默認的修改數(shù)據(jù)語句,update,delete,insert都會自動給涉及到的數(shù)據(jù)加上排他鎖,select語句默認不會加任何鎖類 型,如果加排他鎖可以使用select …for update語句,加共享鎖可以使用select … lock in share mode語句。所以加過排他鎖的數(shù)據(jù)行在其他事務種是不能修改數(shù)據(jù)的,也不能通過for update和lock in share mode鎖的方式查詢數(shù)據(jù),但可以直接通過select …from…查詢數(shù)據(jù),因為普通查詢沒有任何鎖機制。

說了這么多,咱們來看下以下簡單的例子:

我們有如下測試數(shù)據(jù)

mysql共享鎖與排他鎖用法實例分析

現(xiàn)在我們對id=1的數(shù)據(jù)行排他查詢,這里會使用begin開啟事務,而不會看見我關閉事務,這樣做是用來測試,因為提交事務或回滾事務就會釋放鎖。

打開一個查詢窗口

mysql共享鎖與排他鎖用法實例分析

會查詢到一條數(shù)據(jù),現(xiàn)在打開另一個查詢窗口,對同一數(shù)據(jù)分別使用排他查和共享鎖查詢兩種方式查詢

排他查

mysql共享鎖與排他鎖用法實例分析

共享查

mysql共享鎖與排他鎖用法實例分析

我們看到開了排他鎖查詢和共享鎖查詢都會處于阻塞狀態(tài),因為id=1的數(shù)據(jù)已經被加上了排他鎖,此處阻塞是等待排他鎖釋放。

如果我們直接使用以下查詢呢

mysql共享鎖與排他鎖用法實例分析

我們看到是可以查詢到數(shù)據(jù)的。

我們再看一下一個事務獲取了共享鎖,在其他查詢中也只能加共享鎖或不加鎖。

mysql共享鎖與排他鎖用法實例分析

mysql共享鎖與排他鎖用法實例分析

我們看到是可以查詢數(shù)據(jù)的,但加排他鎖就查不到,因為排他鎖與共享鎖不能存在同一數(shù)據(jù)上。

最后我們驗證下上面說的mysql InnoDb引擎中update,delete,insert語句自動加排他鎖的問題,

mysql共享鎖與排他鎖用法實例分析

mysql共享鎖與排他鎖用法實例分析

此時共享查詢處于阻塞,等待排它鎖的釋放,但是用普通查詢能查到數(shù)據(jù),因為沒用上鎖機制不與排他鎖互斥,但查到的數(shù)據(jù)是修改數(shù)據(jù)之前的老數(shù)據(jù)。

mysql共享鎖與排他鎖用法實例分析

然后我們提交數(shù)據(jù),釋放排他鎖看下修改后的數(shù)據(jù),此時可用排他查,共享查和普通查詢, 因為事務提交后該行數(shù)據(jù)釋放排他鎖,下面就只顯示普通查詢,其他的同學們自己去驗證。

mysql共享鎖與排他鎖用法實例分析

mysql共享鎖與排他鎖用法實例分析

可以看到結果與預期的一樣。

以上為我對mysql中共享鎖與排他鎖的個人理解,有不正確的地方還希望各位指正。

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

原文鏈接:https://www.cnblogs.com/AndyAo/p/8144270.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: gay 男同志被捆绑茎 | 国产婷婷成人久久av免费高清 | 国产情侣视频观看 | bbwfreehd女厕所ved| 国产另类视频 | 国产精品一区久久精品 | 十大免费b2b网站 | 亚洲久草在线 | 五月色综合婷婷综合俺来也 | 国产精品成人免费观看 | 3d动漫美女被吸乳羞羞视频 | 希岛爱理作品在线观看 | 爱情岛论坛亚洲一号路线 | 四虎在线永久免费视频网站 | 亚洲精品AV无码永久无码 | bt天堂在线最新版在线 | 四虎成人影院 | 男人好大好硬好爽免费视频 | youwu在线影院| 国产人成精品午夜在线观看 | 国产美女做爰免费视频网址 | 精品视频在线播放 | 久久re热在线视频精6 | 王小军怎么了最新消息 | 天天爱综合网 | 蜜桃免费 | 色小妹在线| 91手机看片国产永久免费 | 婷综合 | 亚洲精品在线免费观看视频 | 不卡视频一区二区 | 国产精品毛片无码 | 99青青青精品视频在线 | 公共场合高h短篇 | 欧美办公室silkstocking | 楚乔传第二部免费播放电视连续剧 | 日日草视频 | 成人精品视频 成人影院 | 精品一区二区三区免费视频 | 校服下的白嫩小乳尖h1v1 | 百合漫画咱啪全彩抚慰 |