亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

讀取數據事務

系統 1938 0

最近研究讀取數據,稍微總結一下,以后繼續補充:

???? ?事務(Transaction)是并發控制的基本單位。所謂的事務,它是一個操作序列,這些操作要么都執行,要么都不執行,它是一個弗成分割的工作單位。例如,銀行轉賬工作:從一個賬號扣款并使另一個賬號增款,這兩個操作要么都執行,要么都不執行。所以,應該把它們看成一個事務。事務是數據庫維護數據一致性的單位,在每個事務結束時,都能堅持數據一致性。

????

????

???????針對下面的描述可以看出,事務的提出重要是為了處理并發情況下堅持數據一致性的問題。

????

???????事務擁有以下4個基本特征。

????

●???Atomic(原子性):事務中包括的操作被看做一個邏輯單元,這個邏輯單元中的操作要么全體成功,要么全體失敗。

????

●???Consistency(一致性):只有合法的數據可以被寫入數據庫,否則事務應該將其回滾到最初狀態。

????

●???Isolation(斷絕性):事務答應多個用戶對同一個數據進行并發拜訪,而不破壞數據的正確性和完整性。同時,并行事務的修改必須與其他并行事務的修改相互獨立。

????

●???Durability(速決性):事務結束后,事務處置的結果必須能夠得到固化。

????

???????數據庫肯定是要被廣大客戶所同享拜訪的,那么在數據庫操作進程中很可能出現以下幾種不確定情況。

????

●???更新喪失(Lost update):兩個事務都同時更新一行數據,但是第二個事務卻半途失敗退出,導致對數據的兩個修改都失效了。這是因為系統沒有執行任何的鎖操作,因此并發事務并沒有被斷絕開來。

????

●???臟讀取(Dirty Reads):一個事務開始讀取了某行數據,但是另外一個事務已更新了此數據但沒有能夠及時提交。這是相稱危險的,因為很可能所有的操作都被回滾。

????

●???弗成重復讀取(Non-repeatable Reads):一個事務對同一行數據重復讀取兩次,但是卻得到了不同的結果。例如,在兩次讀取的半途,有另外一個事務對該行數據進行了修改,并提交。

????

●???兩次更新問題(Second lost updates problem):沒法重復讀取的特例。有兩個并發事務同時讀取同一行數據,然后其中一個對它進行修改提交,而另一個也進行了修改提交。這就會造成第一次寫操作失效。
????每日一道理
“一年之計在于春”,十幾歲的年紀,正是人生的春天,別辜負了歲月老人的厚愛與恩賜。行動起來,播種夢想吧!

????

●???虛讀(Phantom Reads):事務在操作進程中進行兩次查詢,第二次查詢的結果包括了第一次查詢中未出現的數據(這里并不要求兩次查詢的SQL語句相同)。這是因為在兩次查詢進程中有另外一個事務插入數據造成的。

????

?數據庫的斷絕級別
???????為了避免下面出現的幾種情況,在標準SQL標準中,定義了4個事務斷絕級別,不同的斷絕級別對事務的處置不同。
●???未授權讀取(Read Uncommitted):答應臟讀取,但不答應更新喪失。如果一個事務已開始寫數據,則另外一個數據則不答應同時進行寫操作,但答應其他事務讀此行數據。該斷絕級別可以通過“排他寫鎖”實現。
●???授權讀取(Read Committed):答應弗成重復讀取,但不答應臟讀取。這可以通過“霎時同享讀鎖”和“排他寫鎖”實現。讀取數據的事務答應其他事務繼續拜訪該行數據,但是未提交的寫事務將會禁止其他事務拜訪該行。
●???可重復讀取(Repeatable Read):禁止弗成重復讀取和臟讀取,但是偶然可能出現幻影數據。這可以通過“同享讀鎖”和“排他寫鎖”實現。讀取數據的事務將會禁止寫事務(但答應讀事務),寫事務則禁止任何其他事務。
●???序列化(Serializable):供給嚴厲的事務斷絕。它要求事務序列化執行,事務只能一個接著一個地執行,但不能并發執行。如果僅僅通過“行級鎖”是沒法實現事務序列化的,必須通過其他機制保障新插入的數據不會被剛執行查詢操作的事務拜訪到。
???????斷絕級別越高,越能保障數據的完整性和一致性,但是對并發性能的影響也越大。對于多數應用程序,可以優先斟酌把數據庫系統的斷絕級別設為Read Committed,它能夠避免臟讀取,而且擁有較好的并發性能。盡管它會導致弗成重復讀、虛讀和第二類喪失更新這些并發問題,在可能出現這類問題的個別場合,可以由應用程序采取悲觀鎖或悲觀鎖來控制。
???????通過前面的分析已知道,通過選用不同的斷絕品級就能夠在不同程度上避免前面所提及的在事務處置中所面對的各種問題。所以,數據庫斷絕級別的選取就顯得尤為重要,在選取數據庫的斷絕級別時,應該注意以下幾個處置的原則:
???????首先,必須清除“未授權讀取”,因為在多個事務之間使用它將會是非常危險的。事務的回滾操作或失敗將會影響到其他并發事務。第一個事務的回滾將會完全將其他事務的操作清除,甚至使數據庫處在一個不一致的狀態。很可能一個已回滾為結束的事務對數據的修改最后卻修改提交了,因為“未授權讀取”答應其他事務讀取數據,最后整個錯誤狀態在其他事務之間傳播開來。
???????其次,絕大部分應用都無須使用“序列化”斷絕(一般來說,讀取幻影數據并非一個問題),此斷絕級別也難以丈量。現在使用序列化斷絕的應用中,一般都使用悲觀鎖,這樣強行使所有事務都序列化執行。
???????剩下的也就是在“授權讀取”和“可重復讀取”之間選擇了。我們先斟酌可重復讀取。如果所有的數據拜訪都是在統一的原子數據庫事務中,此斷絕級別將清除一個事務在另外一個并發事務進程中覆蓋數據的可能性(第二個事務更新喪失問題)。這是一個非常重要的問題,但是使用可重復讀取并非處理問題的獨一途徑。
???????假設使用了“版本數據”,Hibernate會自動使用版本數據。Hibernate的一級Session緩存和版本數據已為你供給了“可重復讀取斷絕”絕大部分的特性。特殊是,版本數據可以防止二次更新喪失的問題,一級Session緩存可以保障速決載入數據的狀態與其他事務對數據的修改斷絕開來,因此如果使用對所有的數據庫事務采取授權讀取斷絕和版本數據是行得通的。
???????“可重復讀取”為數據庫查詢供給了更好的效率(僅對那些長時間的數據庫事務),但是由于幻影讀取仍然存在,因此沒必要使用它(對于Web應用來說,一般也很少在一個數據庫事務中對同一個表查詢兩次)。
???????也可以同時斟酌選擇使用Hibernate的二級緩存,它可以猶如底層的數據庫事務一樣供給相同的事務斷絕,但是它可能弱化斷絕。假如在二級緩存大批使用緩存并發策略,它并不供給重復讀取語義(例如,前面章節中將要探討的讀寫,特殊是非嚴厲讀寫),很輕易可以選擇默認的斷絕級別:因為無論如何都沒法實現“可重復讀取”,因此就更沒有必要拖慢數據庫了。另一方面,可能對癥結類不采取二級緩存,或者采取一個完全的事務緩存,供給“可重復讀取斷絕”。那么在業務中須要使用到“可重復讀取”嗎?如果你愛好,當然可以那樣做,但更多的時候并沒有必要花費這個代價。

文章結束給大家分享下程序員的一些笑話語錄: 面試官:熟悉哪種語言
應聘者:JAVA
面試官:知道什么叫類么
應聘者:我這人實在,工作努力,不知道什么叫累
面試官:知道什么是包?
應聘者:我這人實在 平常不帶包 也不用公司準備了
面試官:知道什么是接口嗎?
應聘者:我這個人工作認真。從來不找借口偷懶
面試官:知道什么是繼承么
應聘者:我是孤兒沒什么可以繼承的
面試官:知道什么叫對象么?
應聘者:知道,不過我工作努力,上進心強,暫時還沒有打算找對象。
面試官:知道多態么?
應聘者:知道,我很保守的。我認為讓心愛的女人為了自已一時的快樂去墮胎是不道德的行為!請問這和C#有什么關系??

讀取數據事務


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 视频一区二区三区在线 | 色偷偷久久一区二区三区 | 亚洲欧美日韩中文综合在线不卡 | 亚洲乱码在线视频 | 亚洲国产精品第一区二区 | 99在线观看精品免费99 | 日韩欧美毛片 | 亚洲看片网| 久久国产精品免费 | 国产精品一区二区三 | 爆操白虎 | 国产亚洲精品国产福利在线观看 | 日本不卡免费高清一级视频 | aaa级片| 欧美日韩在线视频播放 | 亚洲高清一区二区三区久久 | 九九色在线视频 | 亚洲专区在线视频 | 欧美日本高清视频在线观看 | 图片专区亚洲欧美另类 | 亚洲桃色视频 | 亚洲精品欧美精品日韩精品 | 久久香蕉国产线看观看网站 | 国产精品一国产精品免费 | 久草国产视频 | 一区二区三区在线播放 | 亚洲另类图 | 成人免费一级片 | 欧美激情 亚洲 | 99热成人精品热久久669 | 欧美日韩一区二区亚洲 | 日日综合 | 国产精品一区不卡 | 爱爱网网站免费观看 | 国内色视频 | 天天射网站 | 免费的拍拍视频在线观看 | 91热国内精品永久免费观看 | 国产剧情一区二区 | 9久久这里只有精品国产 | 国产乱子伦一级毛片 |