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

mysql事務(wù)隔離級別詳解

 更新時間:2023年06月16日 08:42:27   作者:CrazyPixel  
MySQL事務(wù)隔離級別是指在多個事務(wù)同時執(zhí)行時,數(shù)據(jù)庫系統(tǒng)如何處理這些事務(wù)之間的相互影響。MySQL提供了四種隔離級別:讀未提交、讀已提交、可重復(fù)讀和串行化。每種隔離級別都有其優(yōu)缺點,需要根據(jù)具體情況選擇合適的級別。

0. 事務(wù)的概念

事務(wù)指的是一連串的集中操作指令,一個事務(wù)的執(zhí)行必須執(zhí)行完所有的動作才能算作執(zhí)行結(jié)束。事務(wù)具有四個特點,簡記作ACID

  • A-Atomicity: 原子性,事務(wù)的執(zhí)行必須保證所有的動作都執(zhí)行完畢;
  • C-Consistency: 一致性,事務(wù)的執(zhí)行必須保證數(shù)據(jù)的一致性;
  • I-Isolation: 隔離性,事務(wù)的執(zhí)行必須保證數(shù)據(jù)的隔離性;
  • D-Durability: 持久性,事務(wù)的執(zhí)行必須保證數(shù)據(jù)的持久性。

而事務(wù)隔離級別則是在大型數(shù)據(jù)庫多個事務(wù)執(zhí)行的過程中,針對事務(wù)并行進行的機制設(shè)計,主要是圍繞Isolation進行設(shè)計的。

1. 三類問題

  • 臟讀
    • 過程:
      • 事務(wù)A正在寫某一行數(shù)據(jù),未提交;
      • 事務(wù)B并行讀取該行數(shù)據(jù),用于操作;
      • 事務(wù)A撤銷寫操作,這是對于事務(wù)B來說,之前的讀操作就是錯誤的。
    • 讀事務(wù)讀取了寫事務(wù)未提交的數(shù)據(jù),而造成錯誤讀取。
    • 舉例
      • 小明今天發(fā)工資,一開始在財務(wù)系統(tǒng)上查詢是工資50000元,很高興地準(zhǔn)備買新電腦,但是這是財務(wù)正在敲數(shù)據(jù)的時候一時疏忽,實際上工資只有5000元,財務(wù)在審核數(shù)據(jù)準(zhǔn)備提交的時候發(fā)現(xiàn)了這個錯誤并修改過來,小明很失望。
      • 這里的小明就是讀事務(wù),財務(wù)就是寫事務(wù)。
  • 不可重復(fù)讀
    • 過程:
      • 事務(wù)B讀取的是數(shù)據(jù)庫中的某一行數(shù)據(jù),用于操作;
      • 事務(wù)A開始對這行數(shù)據(jù)進行寫操作并完成,數(shù)據(jù)庫的數(shù)據(jù)改變;
      • 事務(wù)B再次讀該數(shù)據(jù)庫的這一行數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)改變;
    • 讀事務(wù)兩次讀同一行數(shù)據(jù),但是兩次讀取的數(shù)據(jù)并不一致。
    • 舉例
      • 小明和小紅打賭,這個月工資是1k,兩個人幾乎同時發(fā)出查詢請求,但是小明先讀取到了原始數(shù)據(jù)是1k,而財務(wù)核對之后再次修改了工資為2k,小紅在這之后才并發(fā)讀取到工資是2k,兩人認(rèn)為讀操作是并行的,同時進行,雖然知道這中間可能是財務(wù)進行了修改,但是兩人都認(rèn)為自己讀取的才是最終數(shù)據(jù),因此吵了起來。
  • 幻讀
    • 過程
      • 事務(wù)B讀取數(shù)據(jù)庫中的一批數(shù)據(jù),用于操作;
      • 事務(wù)A添加了一行數(shù)據(jù),并完成操作,數(shù)據(jù)庫的數(shù)據(jù)改變;
      • 事務(wù)B再次讀該數(shù)據(jù)庫的數(shù)據(jù),發(fā)現(xiàn)這一批數(shù)據(jù)改變;
    • 讀事務(wù)兩次讀取同一行數(shù)據(jù),但是兩次讀取的數(shù)據(jù)不一致。(這和不可重復(fù)讀操作是一致的)。
    • 舉例
      • 小明被領(lǐng)導(dǎo)要求,改動財務(wù)系統(tǒng)上的ID數(shù)據(jù)格式,從A格式全都轉(zhuǎn)為B格式,小明讀取數(shù)據(jù)庫中的數(shù)據(jù)之后開始修改,這時候,財務(wù)發(fā)現(xiàn)新來了一位員工叫小紅,于是把小紅的記錄添加在財務(wù)系統(tǒng)上,ID格式依然是A格式。小明工作完成之后給領(lǐng)導(dǎo)看,領(lǐng)導(dǎo)卻發(fā)現(xiàn)有一個人的數(shù)據(jù)沒有改過來,很是惱火,把小明批評了一番。
    • 幻讀和不可重復(fù)讀的區(qū)別
      • 幻讀是針對同一批數(shù)據(jù),不可重復(fù)讀針對的是同一行數(shù)據(jù)

2. 事務(wù)隔離級別

  • 讀未提交(read uncommitted)
  • 一個事務(wù)在寫某一行數(shù)據(jù)的時候,允許其他事務(wù)并行讀取該行數(shù)據(jù),但是不允許寫該行數(shù)據(jù);
  • 允許多個事務(wù)并行讀取數(shù)據(jù)庫中的數(shù)據(jù),但是不允許并行寫入某一行數(shù)據(jù);
  • 可能會出現(xiàn)臟讀:
  • 解決方案:排他鎖
  • 讀已提交(read committed)

    • 一個事務(wù)在寫某一行數(shù)據(jù)的時候,不允許其他事務(wù)讀或者寫該行數(shù)據(jù);
    • 允許多個事務(wù)并行讀取數(shù)據(jù)庫的數(shù)據(jù);
    • 可能都造成不可重復(fù)讀
  • 可重復(fù)讀(repeatable read)

    • 一個事務(wù)在讀數(shù)據(jù)的時候,其他事務(wù)不允許寫,可以讀。
    • 一個事務(wù)在寫數(shù)據(jù)的時候,其他事務(wù)不可以讀或者寫。
    • 可能會造成幻讀
    • MySQL默認(rèn)的隔離級別。
  • 串行化(serializable)

    • 一個事務(wù)一個事務(wù)串行執(zhí)行,不允許任何事物并行;
    • 能夠解決幻讀、不可重復(fù)讀、臟讀的問題;
    • 成本高,一般不適用

3. 操作指令

查看當(dāng)前的隔離級別

SELECT @@tx_isolation;

設(shè)置隔離級別

 set  [glogal | session]  transaction isolation level 隔離級別名稱;//方式1
 set tx_isolation='隔離級別名稱';//方式2
``

4. 總結(jié)

對前期的事務(wù)隔離級別做一個表格梳理

img
mysql事務(wù)隔離級別詳解

5. 參考博文

MySQL事務(wù)隔離級別是保證數(shù)據(jù)一致性和并發(fā)性的重要手段。不同的隔離級別適用于不同的場景,需要根據(jù)實際情況進行選擇。在使用事務(wù)時,需要注意事務(wù)的提交和回滾,以及鎖的使用和釋放,以保證數(shù)據(jù)的正確性和系統(tǒng)的穩(wěn)定性。

到此這篇關(guān)于mysql事務(wù)隔離級別詳解的文章就介紹到這了,更多相關(guān)MySQL事務(wù)隔離級別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中pt-table-checksum實現(xiàn)主從一致性校驗的終極方案

    MySQL中pt-table-checksum實現(xiàn)主從一致性校驗的終極方案

    pt-table-checksum 憑借低侵入性、高準(zhǔn)確性和良好的兼容性,成為 MySQL 主從一致性校驗的首選工具,下面就來詳細的介紹一下MySQL中pt-table-checksum實現(xiàn)主從一致性校驗,感興趣的可以了解一下
    2026-04-04
  • mysql 5.7.12 winx64安裝配置方法圖文教程

    mysql 5.7.12 winx64安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7.12winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-05-05
  • mysql之如何給大表加字段

    mysql之如何給大表加字段

    這篇文章主要介紹了mysql之如何給大表加字段問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 一個優(yōu)化MySQL查詢操作的具體案例分析

    一個優(yōu)化MySQL查詢操作的具體案例分析

    這篇文章主要介紹了一個優(yōu)化MySQL查詢操作的具體案例分析,主要針對join字段的使用方面做出調(diào)整,需要的朋友可以參考下
    2015-05-05
  • 最新評論

    乌恰县| 漠河县| 江华| 鄯善县| 游戏| 东乡族自治县| 衡山县| 普宁市| 池州市| 高雄县| 蓬安县| 海城市| 南丹县| 富阳市| 通城县| 鄯善县| 高邮市| 长丰县| 钦州市| 鄂伦春自治旗| 北碚区| 高平市| 抚顺市| 长子县| 万全县| 临夏市| 延庆县| 定安县| 信宜市| 灵宝市| 株洲县| 枣阳市| 临清市| 龙岩市| 新竹市| 永新县| 北辰区| 子洲县| 全南县| 高邑县| 万源市|