本篇內(nèi)容主要講解“SQL92標準隔離級別有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SQL92標準隔離級別有哪些”吧!
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站設計制作、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元滿城做網(wǎng)站,已為上家服務,為滿城各地企業(yè)和個人服務,聯(lián)系電話:18980820575
Read uncommitted (讀取未提交內(nèi)容)
在 Read uncommitted 級別,事務中的修改,即使沒有提交,對其他事務也都是可見的。事務可以讀取未提交的數(shù)據(jù),這也成為臟讀(Dirty read)。這個級別會導致很多問題,從性能上說 Read uncommitted 不會比其他的級別好太多,但缺乏其他級別的好多好處,除非有非常必要的理由,在實際的應用中一般很少使用。
Read committed (讀取提交內(nèi)容)
大多數(shù)數(shù)據(jù)庫系統(tǒng)的默認隔離級別都是 Read committed(但是 MySQL 不是)。Read committed 滿足前面提到的隔離性的簡單定義:一個事務開始時,只能看到已經(jīng)提交的事務所做的修改。換句話說,一個事務從開始到提交之前,所做的任何修改對其他事務都是不可見的。這個級別有時候也叫做不可重復的(Nonrepeatable read),因為兩次執(zhí)行同樣的查詢,可能會得到不一樣的結(jié)果。
Repeatable read (可重復讀)
Repeatable read 解決了臟讀問題。該級別保證了在同一個事務中多次讀取同樣的記錄的結(jié)果是一致的。但是,理論上,可重復讀隔離級別還是無法解決另一個幻讀 (Phantom read)的問題。所謂幻讀,指的是當某個事務在讀取某個范圍內(nèi)的記錄時,另外一個事務又在該范圍內(nèi)插入了新的記錄,當之前的事務再次讀取該范圍的記錄時,會產(chǎn)生幻行(Phantom row)。InnoDB 和 XtraDB 存儲引擎通過多版并發(fā)控制(MVCC,Multivesion Concurrency Control)解決了幻讀問題。
Repeatable read 是 Mysql 默認的事務隔離級別,其中 InnoDB主 要通過使用 MVVC 獲得高并發(fā),使用一種被稱為 next-key-locking 的策略來避免幻讀。
Serializable (可串行化)
Serializable 是最高的隔離級別。它通過強制事務串行,避免了前面說的幻讀問題。簡單的來說,Serializable 會在讀的每一行數(shù)據(jù)上都加上鎖,所以可能導致大量的超時和鎖征用問題。實際應用中也很少用到這個隔離級別,只有在非常需要確保數(shù)據(jù)的一致性而且可以接受沒有并發(fā)的情況,才可考慮用該級別。
ANSI SQL92 P68-69
Level (隔離級別) | Dirty read (臟讀) | Non-repeatable read (不可重復讀) | Phantom (幻讀) |
---|---|---|---|
Read uncommitted (讀取未提交內(nèi)容) | ? | ? | ? |
Read committed (讀取提交內(nèi)容) | × | ? | ? |
Repeatable read (可重復讀) | × | × | ? |
Serializable (可串行化) | × | × | × |
到此,相信大家對“SQL92標準隔離級別有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
分享名稱:SQL92標準隔離級別有哪些
文章位置:http://aaarwkj.com/article0/goddoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、品牌網(wǎng)站設計、靜態(tài)網(wǎng)站、網(wǎng)頁設計公司、軟件開發(fā)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)