首頁常見問題正文

Python Mysql技能學習:事務隔離級別

更新時間:2024-01-10 來源:黑馬程序員 瀏覽量:

IT培訓班

  事務隔離級別指在同一個數(shù)據(jù)的多個事務中,當前事務何時能看到其他事務對數(shù)據(jù)修改的結果。MySQL有4種事務隔離級別,分別如下:

  1.Serializable:串行化,一個事務一個事務執(zhí)行,并發(fā)行低。

  2.Repeatable read:可重復讀,無論其他事務是否修改并提交了數(shù)據(jù),在這個事務中看到的數(shù)據(jù)始終不受其他事務的影響。這是MySQL的默認事務隔離級別。

  3.Read committed:讀取已提交,其他事務提交了對數(shù)據(jù)的修改后,本事務就能讀取到修改后的數(shù)據(jù)值。

  4.Read uncommitted:讀取未提交,其他事務只要修改了數(shù)據(jù),即使未提交,本事務也能讀取到修改后的數(shù)據(jù)值。

  MySQL默認的事務隔離級別為Repeatable read,這會導致多位用戶同時購買同一商品時數(shù)據(jù)讀取不及時。例如,一位用戶這邊的事務已經(jīng)提交了數(shù)據(jù)的修改,但因為網(wǎng)絡延遲或其他原因,事務尚未結束,此時其他用戶的事務查詢到的最新數(shù)據(jù)就會延遲。為了解決這一問題,應將數(shù)據(jù)庫的隔離級別修改為Read committed,如此只要一個事務提交了數(shù)據(jù)的修改,其他事務便能及時查詢到修改后的數(shù)據(jù)。

  打開MySQL命令,修改全局或當前session的事務隔離級別為Readcommitted的命令如下:

mysql> set [globale | session] transaction isolation level Read committed:


  本文版權歸黑馬程序員Python培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!

  作者:黑馬程序員Python培訓學院

  首發(fā):https://python.itheima.com

分享到:
在線咨詢 我要報名
和我們在線交談!