久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 什么是事務隔離級別呢?

什么是事務隔離級別呢?

來源:千鋒教育
發(fā)布人:zyh
時間: 2023-06-12 17:20:00 1686561600

  全文大約【1505】字,不說廢話,只講可以讓你學到技術(shù)、明白原理的純干貨!本文帶有豐富案例及配圖視頻,讓你更好的理解和運用文中的技術(shù)概念,并可以給你帶來具有足夠啟迪的思考......

什么是事務隔離級別

  一. 事務隔離級別

  什么是事務隔離級別呢?對我們的日常操作結(jié)果又有什么影響呢?下面小編帶各位小伙伴先來了解下事務隔離級別的概念。

  1.隔離級別的概念

  多個客戶端操作時 ,各個客戶端的事務之間應該是隔離的,相互獨立的 , 不受影響的。

  如果多個事務操作同一批數(shù)據(jù)時,則需要設(shè)置不同的隔離級別 , 否則就會產(chǎn)生問題 。

  2.四種隔離級別

  我們先來了解一下四種隔離級別的名稱 , 再來看看可能出現(xiàn)的問題。

1684148060557.image

  3.可能引發(fā)的問題

  下面小編總結(jié)了數(shù)據(jù)庫中不同事務隔離級別可能引發(fā)的問題。各位小伙伴可以參照下。

1684148144702.image

  4.數(shù)據(jù)庫隔離級別操作語法

  查詢數(shù)據(jù)庫隔離級別:

  語法:SELECT @@TX_ISOLATION;

  修改數(shù)據(jù)庫隔離級別:

  語法:SET GLOBAL TRANSACTION ISOLATION LEVEL 級別字符串;

  5.事務隔離級別演示

  舉個栗子:臟讀的問題。  

-- 查詢賬戶表
select * from account;

-- 設(shè)置隔離級別為read uncommitted
set global transaction isolation level read uncommitted;

-- 開啟事務
start transaction;

-- 轉(zhuǎn)賬
update account set money = money - 500 where id = 1;
update account set money = money + 500 where id = 2;

-- 窗口2查詢轉(zhuǎn)賬結(jié)果 ,出現(xiàn)臟讀(查詢到其他事務未提交的數(shù)據(jù))

-- 窗口2查看轉(zhuǎn)賬結(jié)果后,執(zhí)行回滾
rollback;

  舉個栗子:解決臟讀的問題和演示不可重復讀的問題。 

-- 設(shè)置隔離級別為read committed
set global transaction isolation level read committed;

-- 開啟事務
start transaction;

-- 轉(zhuǎn)賬
update account set money = money - 500 where id = 1;
update account set money = money + 500 where id = 2;

-- 窗口2查看轉(zhuǎn)賬結(jié)果,并沒有發(fā)生變化(臟讀問題被解決了)

-- 執(zhí)行提交事務。
commit;

-- 窗口2查看轉(zhuǎn)賬結(jié)果,數(shù)據(jù)發(fā)生了變化(出現(xiàn)了不可重復讀的問題,讀取到其他事務已提交的數(shù)據(jù))

  舉個栗子:解決不可重復讀的問題。  

-- 設(shè)置隔離級別為repeatable read
set global transaction isolation level repeatable read;

-- 開啟事務
start transaction;

-- 轉(zhuǎn)賬
update account set money = money - 500 where id = 1;
update account set money = money + 500 where id = 2;

-- 窗口2查看轉(zhuǎn)賬結(jié)果,并沒有發(fā)生變化

-- 執(zhí)行提交事務
commit;

-- 這個時候窗口2只要還在上次事務中,看到的結(jié)果都是相同的。
-- 只有窗口2結(jié)束事務,才能看到變化(不可重復讀的問題被解決)

  6.隔離級別總結(jié)

1684148228628.image

  注意:隔離級別從小到大安全性越來越高,但是效率越來越低 , 所以不建議使用READ UNCOMMITTED 和 SERIALIZABLE 隔離級別。

  二. 結(jié)語

  小編在這里對本文核心要點進行總結(jié):

  1.理解臟讀、幻讀、不可重復讀產(chǎn)生的原因和解決辦法。

  2.各位小伙伴熟練記住不同隔離級別以及會導致的問題。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT