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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

高性能mysql_事务及4种隔离级别

發(fā)布時間:2023/12/3 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高性能mysql_事务及4种隔离级别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉自 高性能mysql

【1.3】事務

1)事務定義:事務就是一組原子性的sql查詢,或者說一個獨立的工作單元。

即事務內的sql語句,要么全部執(zhí)行成功,要么全部執(zhí)行失敗;

2)事務的ACID概念:原子性automicity,一致性consistency,隔離性isolation,持久性durability;

  • 原子性:一個事務必須被視為一個不可分割的最小工作單元,整個事務中的所有操作要么全部提交成功,要么全部失敗回滾;
  • 一致性;數(shù)據(jù)庫總是從一個一致性狀態(tài)轉移到另一個一致性狀態(tài);
  • 隔離性:通常來說,一個事務所做的修改在最終提交前,對其他事務都是不可見的;
  • 持久性:一旦事務提交,則其所做的修改就會永久保存到數(shù)據(jù)庫中;此時即使數(shù)據(jù)庫崩潰,數(shù)據(jù)也不會丟失;

?

【1.3.1】4種隔離級別

級別1)READ UNCOMMITED 未提交讀:事務的修改,即使沒有提交,對其他事務也是可見的;

級別2)READ COMMITTED 提交讀:一個事務從開始直到提交之前,所做的任何修改對其他事務不可見的;

也叫不可重復讀,因為兩次執(zhí)行相同的查詢,可能得到不同的查詢結果;

?

級別3)REPEATABLE READ 可重復讀:RR 解決了臟讀問題。該級別保證在同一事務中多次讀取同樣記錄的結果是一致的 ;(mysql的默認事務隔離級別)

但 RR 無法解決幻讀問題,幻讀指的是當某個事物在讀取某個范圍內的記錄時,另外一個事務又在該范圍內插入了一條新的記錄,當之前的事務再次讀取到該范圍的記錄時,會產生幻行;

不過 mysql中的 innodb 和 XtraDB 存儲引擎通過多版本并發(fā)控制 MVVC(multiversion concurrency control) 解決了幻讀問題;

?

級別4)SERIALIZABLE 可串行化:最高隔離級別。通過強制事務串行執(zhí)行,避免了前面說的幻讀問題。

簡單說,SERIALIZABLE 會在讀取的每一行數(shù)據(jù)上都加鎖,所以可能導致大量的超時和鎖征用的問題;實際應用中很少考慮這種隔離級別;

?

?

總結

以上是生活随笔為你收集整理的高性能mysql_事务及4种隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。

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