欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
標準SQL規范中定義的四個(gè)事務(wù)隔離級別
在標準SQL規范中,定義了4個(gè)事務(wù)隔離級別,不同的隔離級別對事務(wù)的處理不同:

◆未授權讀?。≧ead Uncommitted):允許臟讀取,但不允許更新丟失。如果一個(gè)事務(wù)已經(jīng)開(kāi)始寫(xiě)數據,則另外一個(gè)數據則不允許同時(shí)進(jìn)行寫(xiě)操作,但允許其他事務(wù)讀此行數據。該隔離級別可以通過(guò)“排他寫(xiě)鎖”實(shí)現。

◆授權讀?。≧ead Committed):允許不可重復讀取,但不允許臟讀取。這可以通過(guò)“瞬間共享讀鎖”和“排他寫(xiě)鎖”實(shí)現。讀取數據的事務(wù)允許其他事務(wù)繼續訪(fǎng)問(wèn)該行數據,但是未提交的寫(xiě)事務(wù)將會(huì )禁止其他事務(wù)訪(fǎng)問(wèn)該行。

◆可重復讀?。≧epeatable Read):禁止不可重復讀取和臟讀取,但是有時(shí)可能出現幻影數據。這可以通過(guò)“共享讀鎖”和“排他寫(xiě)鎖”實(shí)現。讀取數據的事務(wù)將會(huì )禁止寫(xiě)事務(wù)(但允許讀事務(wù)),寫(xiě)事務(wù)則禁止任何其他事務(wù)。

◆序列化(Serializable):提供嚴格的事務(wù)隔離。它要求事務(wù)序列化執行,事務(wù)只能一個(gè)接著(zhù)一個(gè)地執行,但不能并發(fā)執行。如果僅僅通過(guò)“行級鎖”是無(wú)法實(shí)現事務(wù)序列化的,必須通過(guò)其他機制保證新插入的數據不會(huì )被剛執行查詢(xún)操作的事務(wù)訪(fǎng)問(wèn)到。

隔離級別越高,越能保證數據的完整性和一致性,但是對并發(fā)性能的影響也越大。對于多數應用程序,可以?xún)?yōu)先考慮把數據庫系統的隔離級別設為ReadCommitted,它能夠避免臟讀取,而且具有較好的并發(fā)性能。盡管它會(huì )導致不可重復讀、虛讀和第二類(lèi)丟失更新這些并發(fā)問(wèn)題,在可能出現這類(lèi)問(wèn)題的個(gè)別場(chǎng)合,可以由應用程序采用悲觀(guān)鎖或樂(lè )觀(guān)鎖來(lái)控制。

通過(guò)前面的介紹已經(jīng)知道,通過(guò)選用不同的隔離等級就可以在不同程度上避免前面所提及的在事務(wù)處理中所面臨的各種問(wèn)題。所以,數據庫隔離級別的選取就顯得尤為重要,在選取數據庫的隔離級別時(shí),應該注意以下幾個(gè)處理的原則:

首先,必須排除“未授權讀取”,因為在多個(gè)事務(wù)之間使用它將會(huì )是非常危險的。事務(wù)的回滾操作或失敗將會(huì )影響到其他并發(fā)事務(wù)。第一個(gè)事務(wù)的回滾將會(huì )完全將其他事務(wù)的操作清除,甚至使數據庫處在一個(gè)不一致的狀態(tài)。很可能一個(gè)已回滾為結束的事務(wù)對數據的修改最后卻修改提交了,因為“未授權讀取”允許其他事務(wù)讀取數據,最后整個(gè)錯誤狀態(tài)在其他事務(wù)之間傳播開(kāi)來(lái)。

其次,絕大部分應用都無(wú)須使用“序列化”隔離(一般來(lái)說(shuō),讀取幻影數據并不是一個(gè)問(wèn)題),此隔離級別也難以測量。目前使用序列化隔離的應用中,一般都使用悲觀(guān)鎖,這樣強行使所有事務(wù)都序列化執行。

剩下的也就是在“授權讀取”和“可重復讀取”之間選擇了。我們先考慮可重復讀取。如果所有的數據訪(fǎng)問(wèn)都是在統一的原子數據庫事務(wù)中,此隔離級別將消除一個(gè)事務(wù)在另外一個(gè)并發(fā)事務(wù)過(guò)程中覆蓋數據的可能性(第二個(gè)事務(wù)更新丟失問(wèn)題)。這是一個(gè)非常重要的問(wèn)題,但是使用可重復讀取并不是解決問(wèn)題的唯一途徑。

假設使用了“版本數據”,Hibernate會(huì )自動(dòng)使用版本數據。Hibernate的一級Session緩存和版本數據已經(jīng)為你提供了“可重復讀取隔離”絕大部分的特性。特別是,版本數據可以防止二次更新丟失的問(wèn)題,一級Session緩存可以保證持久載入數據的狀態(tài)與其他事務(wù)對數據的修改隔離開(kāi)來(lái),因此如果使用對所有的數據庫事務(wù)采用授權讀取隔離和版本數據是行得通的。

“可重復讀取”為數據庫查詢(xún)提供了更好的效率(僅對那些長(cháng)時(shí)間的數據庫事務(wù)),但是由于幻影讀取依然存在,因此沒(méi)必要使用它(對于Web應用來(lái)說(shuō),一般也很少在一個(gè)數據庫事務(wù)中對同一個(gè)表查詢(xún)兩次)。

也可以同時(shí)考慮選擇使用Hibernate的二級緩存,它可以如同底層的數據庫事務(wù)一樣提供相同的事務(wù)隔離,但是它可能弱化隔離。假如在二級緩存大量使用緩存并發(fā)策略,它并不提供重復讀取語(yǔ)義(例如,后面章節中將要討論的讀寫(xiě),特別是非嚴格讀寫(xiě)),很容易可以選擇默認的隔離級別:因為無(wú)論如何都無(wú)法實(shí)現“可重復讀取”,因此就更沒(méi)有必要拖慢數據庫了。另一方面,可能對關(guān)鍵類(lèi)不采用二級緩存,或者采用一個(gè)完全的事務(wù)緩存,提供“可重復讀取隔離”。那么在業(yè)務(wù)中需要使用到“可重復讀取”嗎?如果你喜歡,當然可以那樣做,但更多的時(shí)候并沒(méi)有必要花費這個(gè)代價(jià)。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Hibernate學(xué)習筆記(五)--數據庫事務(wù)與并發(fā)
數據庫事務(wù)
數據庫并發(fā)訪(fǎng)問(wèn)、事務(wù)與鎖的關(guān)系
深究Oracle的隔離級別
數據庫事務(wù)隔離級別
數據庫事務(wù)級別鎖行為說(shuō)明
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久