最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年09月15日 12:04:23   作者:Andy奧  
這篇文章主要介紹了mysql共享鎖與排他鎖用法,結(jié)合實例形式分析了mysql共享鎖與排他鎖相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下

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

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

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

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

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

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

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

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

打開一個查詢窗口

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

排他查

共享查

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

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

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

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

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

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

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

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

可以看到結(jié)果與預(yù)期的一樣。

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

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》及《MySQL事務(wù)操作技巧匯總

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

相關(guān)文章

  • idea 設(shè)置MySql主鍵的實現(xiàn)步驟

    idea 設(shè)置MySql主鍵的實現(xiàn)步驟

    在IDE開發(fā)工具中也是可以使用mysql的,本文主要介紹了idea 設(shè)置MySql主鍵的實現(xiàn)步驟,文中通過圖文的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2024-03-03
  • Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程

    Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了Windows 8下MySQL Community Server 5.6安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL數(shù)據(jù)庫存儲引擎的應(yīng)用

    MySQL數(shù)據(jù)庫存儲引擎的應(yīng)用

    存儲引擎是MySQL將數(shù)據(jù)存儲在文件系統(tǒng)中的存儲方式,本文主要介紹了MySQL數(shù)據(jù)庫的存儲引擎的應(yīng)用,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • SQL函數(shù)Group_concat的用法及說明

    SQL函數(shù)Group_concat的用法及說明

    這篇文章主要介紹了SQL函數(shù)Group_concat的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL數(shù)據(jù)庫8——數(shù)據(jù)庫中函數(shù)的應(yīng)用詳解

    MySQL數(shù)據(jù)庫8——數(shù)據(jù)庫中函數(shù)的應(yīng)用詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫8——數(shù)據(jù)庫中函數(shù)的應(yīng)用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-03-03
  • MySQL、Oracle數(shù)據(jù)庫如何查看最大連接數(shù)和當前連接數(shù)

    MySQL、Oracle數(shù)據(jù)庫如何查看最大連接數(shù)和當前連接數(shù)

    在使用MySQL、Oracle數(shù)據(jù)庫時了解最大連接數(shù)和當前數(shù)據(jù)庫連接數(shù)對于優(yōu)化數(shù)據(jù)庫性能和確保系統(tǒng)穩(wěn)定性非常重要,這篇文章主要給大家介紹了關(guān)于MySQL、Oracle數(shù)據(jù)庫如何查看最大連接數(shù)和當前連接數(shù)的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • MYSQL explain 執(zhí)行計劃

    MYSQL explain 執(zhí)行計劃

    explain顯示了mysql如何使用索引來處理select語句以及連接表??梢詭椭x擇更好的索引和寫出更優(yōu)化的查詢語句。
    2009-08-08
  • 超出MySQL最大連接數(shù)問題及解決

    超出MySQL最大連接數(shù)問題及解決

    這篇文章主要介紹了超出MySQL最大連接數(shù)問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • MySQL gtid的具體使用

    MySQL gtid的具體使用

    本文詳細介紹了MySQL的GTID的概念、格式、相關(guān)參數(shù)以及生命周期,同時還講解了GTID的自動定位、復(fù)制監(jiān)控與管理等功能,GTID是MySQL復(fù)制環(huán)境中的一種唯一標識,可以有效避免重復(fù)復(fù)制的現(xiàn)象,保持數(shù)據(jù)一致,文章中還列舉了多個示例,感興趣的可以了解一下
    2024-10-10
  • Ubuntu上mysql的安裝及使用(通用版)

    Ubuntu上mysql的安裝及使用(通用版)

    今天小編就為大家分享一篇關(guān)于Ubuntu上mysql的安裝及使用(通用版),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

昂仁县| 绥滨县| 苏尼特左旗| 墨竹工卡县| 正安县| 高要市| 乌什县| 井冈山市| 嘉定区| 华坪县| 综艺| 济南市| 牟定县| 建湖县| 东港市| 大庆市| 江都市| 涟水县| 乡宁县| 诸暨市| 朝阳县| 康保县| 名山县| 天峻县| 怀仁县| 灵武市| 临洮县| 屏南县| 洞头县| 通道| 马尔康县| 中宁县| 嘉黎县| 蓬安县| 无锡市| 黄龙县| 商城县| 铁岭县| 湛江市| 宁都县| 长白|