mysql實(shí)戰(zhàn)技巧(二)mysql事務(wù)的隔離級(jí)別

      網(wǎng)友投稿 1035 2025-03-31

      隔離等級(jí)產(chǎn)生的問題


      mysql實(shí)戰(zhàn)技巧(二)mysql事務(wù)的隔離級(jí)別

      臟讀(Drity Read):A,B兩個(gè)事務(wù)同時(shí)操作表C,A事務(wù)修改C表但是未提交,但是此時(shí)B事務(wù)查詢會(huì)獲取到A事務(wù)修改后的數(shù)據(jù)。

      不可重復(fù)讀(Non-repeatable read):A,B兩個(gè)事務(wù)同時(shí)操作表C成績(jī)字段,A事務(wù)第一次查詢成績(jī)?yōu)?0(A事務(wù)未結(jié)束),B事務(wù)修改成績(jī)?yōu)?0分,此時(shí)A事務(wù)再次查詢成績(jī)就為90分。兩次查詢結(jié)果不同。

      幻讀(Phantom Read):A,B兩個(gè)事務(wù)操作C表,A查詢id為100分的數(shù)據(jù),得到null,此時(shí)B插入一條id為100數(shù)據(jù),提交,A再次插入id為100的數(shù)據(jù)發(fā)現(xiàn)數(shù)據(jù)已經(jīng)存在,A懵逼了,剛才我還沒有查到為什么不能插入。。。。。。

      事務(wù)的隔離等級(jí)

      未提交讀(Read Uncommitted):允許臟讀,也就是可能讀取到其他會(huì)話中未提交事務(wù)修改的數(shù)據(jù)。

      提交讀(Read Committed):只能讀取到已經(jīng)提交的數(shù)據(jù)。

      可重復(fù)讀(Repeated Read):可重復(fù)讀。在同一個(gè)事務(wù)內(nèi)的查詢都是事務(wù)開始時(shí)刻一致的,InnoDB默認(rèn)級(jí)別。在SQL標(biāo)準(zhǔn)中,該隔離級(jí)別消除了不可重復(fù)讀,但是還存在幻讀。

      串行化(Serializable):完全串行化的讀,每次讀都需要獲得表級(jí)共享鎖,讀寫相互都會(huì)阻塞,效率最低,可以避免臟讀,幻讀,不可重復(fù)讀。

      這四種隔離等級(jí)從上向下依次變低

      避免幻讀的方法

      在第一次查詢之后,手動(dòng)加入鎖,不允許別人插入id為100的數(shù)據(jù)。

      SELECT id FROM C WHERE id = 100 FOR UPDATE;

      數(shù)據(jù)庫默認(rèn)的隔離等級(jí)

      Mysql默認(rèn)的隔離等級(jí)?可重復(fù)讀。

      oracle,SQL Server默認(rèn)為 提交讀。

      查詢Mysql當(dāng)前隔離等級(jí)

      1.查詢當(dāng)前會(huì)話和全局會(huì)話等級(jí)

      SELECT @@global.tx_isolation, @@tx_isolation;

      2.設(shè)置當(dāng)前會(huì)話隔離級(jí)別

      set session transaction isolatin level (read uncommitted,read committed,repeatable read,serializable);

      3.設(shè)置系統(tǒng)當(dāng)前隔離級(jí)別

      set global transaction isolation level (read uncommitted,read committed,repeatable read,serializable);

      MySQL

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:生產(chǎn)設(shè)備管理系統(tǒng)(設(shè)備管理 系統(tǒng))
      下一篇:Python 基礎(chǔ)語法_Python腳本文件結(jié)構(gòu)
      相關(guān)文章
      国产日韩成人亚洲丁香婷婷| 国产亚洲一区区二区在线| 亚洲日韩精品一区二区三区| 国产亚洲精品AAAA片APP| 亚洲av无码片在线观看| 亚洲综合色一区二区三区小说| 久久精品夜色国产亚洲av| 久久精品国产亚洲av麻豆 | 亚洲成人免费网站| 亚洲精品在线播放视频| 亚洲第一成年人网站| 亚洲国产综合在线| 亚洲a级成人片在线观看| 亚洲国色天香视频| 国产成人亚洲合集青青草原精品 | 亚洲第一黄片大全| 亚洲国产成人a精品不卡在线| 亚洲国产高清在线一区二区三区| 亚洲电影日韩精品| 国产精品亚洲综合一区| 亚洲乱码无码永久不卡在线| 亚洲国产另类久久久精品小说| 久久亚洲综合色一区二区三区| 亚洲av无码不卡| 亚洲黄色网址在线观看| 亚洲国产视频一区| 亚洲精品第一综合99久久| 亚洲精品国产精品| 亚洲精品tv久久久久久久久久| 久久精品国产亚洲7777| 国产亚洲婷婷香蕉久久精品| 亚洲国产精品自在在线观看| 亚洲精品成人图区| 亚洲国产乱码最新视频| 国产精品无码亚洲一区二区三区| www国产亚洲精品久久久日本| 中文字幕亚洲不卡在线亚瑟| 久久精品国产亚洲综合色| 99久久亚洲精品无码毛片| 亚洲人成毛片线播放| 亚洲日韩AV一区二区三区四区|