日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL之事务隔离级别--转载

發(fā)布時(shí)間:2025/4/5 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL之事务隔离级别--转载 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:http://793404905.blog.51cto.com/6179428/1615550

????本文通過實(shí)例展示MySQL事務(wù)的四種隔離級(jí)別。

????1 概念闡述

????1)Read Uncommitted(讀未提交)

????? ?其他事務(wù)的在未提交的改動(dòng)下,當(dāng)前事務(wù)可以察覺。

????2)Read Committed(讀提交)

????? ?其他事務(wù)在提交改動(dòng)之后,當(dāng)前事務(wù)可以察覺,如果其他事務(wù)未提交改動(dòng),那么不會(huì)察覺。

????3) Repeatable Read(可重復(fù)讀)

????? ?其他事務(wù)提交了改動(dòng),并且當(dāng)前事務(wù)也提交的操作,之后才可以察覺改動(dòng)。

????4) Serializable(可串行化的)

????? ?通過加鎖方式,僅僅保持一個(gè)事務(wù)執(zhí)行更新操作,如果其他事務(wù)執(zhí)行更行操作,那么將處于阻塞

????等待狀態(tài)。

?

????2 實(shí)例展示

????2.1 如何查詢當(dāng)前MySQL的事務(wù)隔離級(jí)別

????

????MySQL默認(rèn)隔離級(jí)別是Repeatable Read(可重復(fù)讀)

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

????

????2.3 Read Uncommitted 隔離級(jí)別效果展示

? ? 1.A,B兩個(gè)事務(wù),將A事務(wù)設(shè)置為Read Uncommitted事務(wù)隔離級(jí)別,當(dāng)B事務(wù),做修改后未提交,A事務(wù)可以發(fā)現(xiàn)B事務(wù)的修改內(nèi)容。

????2.當(dāng)A事務(wù)修改某條記錄時(shí),B也修改某條記錄,會(huì)出現(xiàn)B阻塞等待現(xiàn)象,也就是說A事務(wù)修改會(huì)具有行級(jí)鎖。

????(A事務(wù))

????

????(B事務(wù)修改數(shù)據(jù),但不提交)

????

????(A事務(wù)可以察覺B事務(wù)修改的數(shù)據(jù))

????

????從上述過程可以發(fā)現(xiàn),在Read Uncommitted隔離級(jí)別下,事務(wù)之間的修改會(huì)相互察覺,因此容易出現(xiàn)臟讀現(xiàn)象。

????而且此時(shí)事務(wù)A:update counter set value=1002 where id=1,但不提交事務(wù);事務(wù)B也執(zhí)行update counter set value = 1004 where id = 1;會(huì)阻塞等待直到超時(shí)。原因是因?yàn)槭聞?wù)A執(zhí)行時(shí),鎖住了id=1的這行記錄,因此其他事務(wù)必須等待處理完畢再執(zhí)行;但是其他事務(wù)可以處理id!=1的記錄。

????2.4 Read Committed 隔離級(jí)別效果展示

????1. A、B兩個(gè)事務(wù),假設(shè)A事務(wù)的隔離級(jí)別為Read Committed,那么B事務(wù)在執(zhí)行commit之后,A事務(wù)可以發(fā)現(xiàn)B的修改。

????2. 與Read UnCommitted一樣,都存在行級(jí)鎖的現(xiàn)象。

????(A事務(wù))

????

????(B事務(wù)更新但未提交)

????

????(B事務(wù)提交后,A事務(wù)可以發(fā)現(xiàn)B的修改)

????

????2.5 Repeatable Read(可重復(fù)讀)

????1. A、B事務(wù),A事務(wù)為Repeatable Read,當(dāng)事務(wù)B修改后提交,A仍然無法察覺B的修改效果,而當(dāng)A事務(wù)也提交之后,才可以察覺B的修改。

????2. 同樣存在行級(jí)鎖的鎖定

????(A事務(wù))

????

????(B事務(wù)修改并提交,A事務(wù)仍然無法發(fā)覺B的修改)

????

????(A事務(wù)也提交后,可以發(fā)現(xiàn)B的修改)

????

????2.6 Serializable(可串行化的)

????1. A、B事務(wù),A事務(wù)為Serializable,那么B不能執(zhí)行任何更新操作,因?yàn)锳會(huì)獲取表級(jí)鎖,使得其他事務(wù)無法訪問。

????(A事務(wù))

????

????(B事務(wù)修改操作,無法執(zhí)行)

????

?

????3 總結(jié)

????在MySQL中默認(rèn)采用可重復(fù)讀(Repeatable Read)隔離級(jí)別。關(guān)于隔離級(jí)別的其他知識(shí)點(diǎn)以及更細(xì)微的介紹,本文不做過多介紹,僅僅介紹基本的概念和理解,如果有興趣的伙伴,可以考慮按照我這種模式,不斷實(shí)驗(yàn)。

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/4304648.html

總結(jié)

以上是生活随笔為你收集整理的MySQL之事务隔离级别--转载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。