麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

關于數據庫事務隔離級別與鎖

2024-07-21 02:52:15
字體:
來源:轉載
供稿:網友
 一、什么是事務事務簡單的來說就是把對數據庫的一系列操作放到一個可控制的過程中,進行可量化的控制,事務有4個必須的屬性原則:1、原子性:必須保證在一個事務中的操作要么全部執行,要么全部不執行。2、一致性:事務操作在完成時必須使數據庫保持一致的狀態,內部數據結構必須是完整的。比如一個例子 A和B都有50塊錢,他們兩個無論怎么進行相互轉賬,A+B始終是100。3、隔離性:簡單的來說就是各個事務之間的影響程度。4、持久性:不管數據庫是否發生問題,事務在完成之后數據應該永遠的保存在數據庫中 二、針對事務的隔離性引發的問題 事務之間是會相互影響的,這時候需要有一個規則來約束事務操作,于是有了事務隔離。事務隔離分為4種 : 由低到高依次為Read uncommitted(讀未提交)、Read committed(讀提交)、Repeatable read(重復讀)、Serializable(序列化,也叫串行化),這四個級別可以逐個解決臟讀、不可重復讀、幻讀這幾類問題。注:Sql Server 、Oracle事務隔離級別默認是Read committed(讀提交),MySQL的默認隔離級別就是Repeatable read(重復讀)假設數據庫事務隔離級別為以下4種依次舉例:1、Read uncommitted(讀未提交):A進行了一條數據操作,但是沒有提交事務,這時候如果B進行這條數據查詢,是可以查到A的數據操作的,但是這時候A還沒有提交事務,如果A不提交或者進行了事務回滾,那么B查詢到的數據就是臟數據。2、Read committed(讀提交):A正在進行數據操作,還沒有提交事務,B這個時候也去查詢了A操作的這個數據,并且修改了,馬上提交了事務,這時候A再去提交事務的時候會發現數據不對了,因為A手上的數據是B沒修改之前的,現在去提交時,數據庫的數據已經變成B更改之后的了,這種場景發生在金錢上會有很大問題,明明卡上有錢的A去消費,結果B搶在A前面消費完了,這時候A就是沒法付賬了。這就是不可重復讀。3、Repeatable read(重復讀):這種情況只會發生在有一個事務在新增操作,比如A在查自己的銀行卡現在是100塊錢,A表示看花了,想再查一次,這時候有個人在給他轉賬,然后A第二次查詢,查出了1000塊了,又不敢相信自己是不是看花了。這就是幻讀。4、Serializable(序列化,也叫串行化):Serializable是最高的事務隔離級別,同時代價也花費最高,性能很低,一般很少使用,在該級別下,事務順序執行,不僅可以避免臟讀、不可重復讀,還避免了幻像讀。事務隔離級別參考了一個哥們的博客http://blog.csdn.net/fg2006/article/details/6937413三、數據庫鎖(這里只說幾種常見的鎖,不怎么用的鎖我不知道、也不研究,需要的自行問度娘)樂觀鎖與悲觀鎖就是一個操作數據的姿勢問題,樂觀心態與悲觀心態1、樂觀鎖:每次去找數據庫拿數據都認為別人不會對數據做什么更改,所以不會上鎖。但是在找數據庫要數據的時候會帶一個數據版本過來,做更新的時候會去把拿到的這個版本與數據庫現在的要修改的數據版本做對比 只有大于或者等于數據庫中的數據版本,那么它就認為這次操作是對的,可以執行。否則就不執行。2、悲觀鎖(for update):每次去找數據庫拿數據都認為別人會改,所以它在查詢的時候就給數據加鎖,其他人只能查詢數據不能對數據做修改,只能等加鎖的人操作完成之后才會釋放鎖。樂觀鎖適用于寫比較少的情況下,即沖突真的很少發生的時候,這樣可以省去了鎖的開銷,加大了系統的整個吞吐量。但如果經常產生沖突,上層應用會不斷的進行retry,這樣反倒是降低了性能,所以這種情況下用悲觀鎖就比較合適。3、共享鎖:又稱讀鎖,若事務T對數據對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改4、排它鎖:又稱寫鎖。若事務T對數據對象A加上X鎖,事務T可以讀A也可以修改A,其他事務不能再對A加任何鎖,直到T釋放A上的鎖。這保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品日产第一区二区三区 | 久久久久91视频 | 麻豆蜜桃在线观看 | 青青青在线免费 | 性欧美在线视频 | 黄网站在线免费 | 斗破苍穹在线免费 | 99麻豆久久久国产精品免费 | 一级黄色淫片 | 暴力肉体进入hdxxxx0 | 99日韩精品视频 | 综合国产一区 | 精品久久久久久成人av | 91久久99热青草国产 | 久久国产精品久久久久 | 黄色影院在线观看视频 | 热久久91| 精品一区二区三区在线观看国产 | 毛片视频网站 | 在线成人毛片 | 伊人二本二区 | 亚洲一区二区三区视频免费 | 亚洲综合中文 | 久久精品国产亚洲7777 | 成人免费激情视频 | 黄色大片在线免费看 | 极品大长腿啪啪高潮露脸 | 免费国产在线视频 | 欧美ab | 亚洲天堂在线电影 | 欧日韩 | www.99re14.com| 国产做爰 | 欧美 中文字幕 | 国产精品久久国产精品 | 成人毛片免费视频 | 日本看片一区二区三区高清 | 久久亚洲国产精品 | omofun 动漫在线观看 | 免费观看黄色片视频 | 91一区二区三区久久久久国产乱 |