濮阳杆衣贸易有限公司

主頁 > 知識庫 > mysql 詳解隔離級別操作過程(cmd)

mysql 詳解隔離級別操作過程(cmd)

熱門標簽:遂寧400電話申請 地圖標注直通車 dq8 全地圖標注 哈爾濱云外呼系統(tǒng)運營商 邯鄲400電話注冊辦理 永州智能外呼系統(tǒng) 趙縣地圖標注 電銷機器人市場價 南寧智能電銷機器人價格

讀未提交示例操作過程-Read uncommitted

1、打開兩個MySql的命令提示行,均進入相同數據庫,并檢查當前表內容為相同數據如下:

2、在A、B兩端執(zhí)行select @@tx_isolation;檢查當前默認的隔離級別別,可以發(fā)現都是

Repeatable Read –可重復讀-(在當前事務內,重復讀取第一次讀取過的數據就叫可重復讀。)

3、修改A端的隔離級別為readuncommitted –讀未提交。意思是可以讀取別人沒有提交的數據。

set transactionisolation level read uncommitted;

在綠色的MySql5.5上請執(zhí)行:

Set sessiontransaction isolation level read uncommitted;

   然后再查看是否已經發(fā)生改變:

4、在A、B兩端都開啟事務

starttransaction;

5、在B端修改一行數據如:

update stud setname='Jhon' where id=1;

   其后在A端執(zhí)行查詢:select * from stud;

6、此時B端再次執(zhí)行回滾操作

Rollback;

   再在A端進行查詢,結果發(fā)現數據又回到了之前的數據。這就是臟讀

7、對于B端寫入的新數據,如果沒有提交A端也一樣能查詢到,這叫幻讀

 讀已提交操作過程:-read COMMITTED

1、 檢查A、B兩端是否一致:

2、修改A端(左)的隔離級別為readcommitted;

set transactionisolation level read committed;

   在A端開啟事務:

   starttransaction;

   在B端開啟事務

3、在A端進行查詢:

Select * fromstud;

在B端修改一行記錄并提交

Update stud setname='itcast' where id=1;

再回到A端進行查詢,發(fā)現在同一個事務內,兩次查詢的結果不一樣:

 可重復讀示例Repeatable Read

1、查看A端的隔離級別是否為Repeatableread級別:

Select@@tx_isolation;

2、先在A端在開啟的事務內進行查詢。

然后在B端修改數據庫的內容。

最后再在A端的同一事務內進行查詢,發(fā)現結果一致。

 Serializable是最高級的隔離級別

1、在A端設置隔離級別為Serializable

set transactionisolation level serializable;

在A端開啟一個事務-并對stud表進行查詢。

在B端開啟一個事務,并寫入一行記錄。此時發(fā)現B的代碼并沒有執(zhí)行,因為它在等A提交之后它才執(zhí)行。

類似于線程同步的概念

 這四種隔離級別采取不同的鎖類型來實現,若讀取的是同一個數據的話,就容易發(fā)生問題。例如:

臟讀(Drity Read):某個事務已更新一份數據,另一個事務在此時讀取了同一份數據,由于某些原因,前一個RollBack(回滾)了操作,則后一個事務所讀取的數據就會是不正確的。

不可重復讀(Non-repeatable read):在一個事務的兩次查詢之中數據不一致,這可能是兩次查詢過程中間插入了一個事務更新的原有的數據。

幻讀(Phantom Read):在一個事務的兩次查詢中數據筆數不一致,例如有一個事務查詢了幾列(Row)數據,而另一個事務卻在此時插入了新的幾列數據,先前的事務在接下來的查詢中,就會發(fā)現有幾列數據是它先前所沒有的

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • 深入理解Mysql的四種隔離級別
  • MySQL四種事務隔離級別詳解
  • 通過實例分析MySQL中的四種事務隔離級別
  • Mysql事務隔離級別原理實例解析
  • 詳解MySQL中事務隔離級別的實現原理
  • mysql隔離級別詳解及示例

標簽:浙江 定西 張家界 鄂州 阿里 南寧 中衛(wèi) 上海

巨人網絡通訊聲明:本文標題《mysql 詳解隔離級別操作過程(cmd)》,本文關鍵詞  mysql,詳解,隔離,級別,操作,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql 詳解隔離級別操作過程(cmd)》相關的同類信息!
  • 本頁收集關于mysql 詳解隔離級別操作過程(cmd)的相關信息資訊供網民參考!
  • 推薦文章
    门源| 宝丰县| 洪湖市| 平陆县| 青冈县| 平昌县| 景宁| 河西区| 白朗县| 水城县| 乐业县| 长阳| 钦州市| 格尔木市| 固原市| 汤阴县| 秦安县| 芦溪县| 革吉县| 随州市| 历史| 郓城县| 通江县| 南江县| 资中县| 明星| 大城县| 濉溪县| 石门县| 金溪县| 临颍县| 台州市| 苏尼特左旗| 宿迁市| 和林格尔县| 樟树市| 抚远县| 揭阳市| 武功县| 广昌县| 满城县|