11併發控制

2021-09-26 20:33:26 字數 1137 閱讀 7751

事務乙個乙個序列執行,每個時刻只有乙個事務,允許事務併發執行

併發操作破壞了事務的隔離性。導致:丟失修改,不可重複讀,讀髒資料

併發控制機制就是要用正確的方式排程併發操作,使乙個使用者的執行不受其他事務影響

資料庫的應用優勢可以允許不一致性

併發控制技術:封鎖,時間戳,樂觀控制法,多版本併發控制

封鎖型別:排他鎖(x),共享鎖(s)

排他鎖:寫鎖,事務對資料物件a加上x鎖,其他事務就不能讀取修改物件a

共享鎖,讀鎖,其他事務可以讀,其他事務不能加x,只能讀

規則:何時申請x鎖,s鎖,持鎖事件,釋放,封鎖協議

封鎖協議為**

1.一級鎖協議:事務t在修改資料r之前必須加x鎖,直到事務結束後釋放,結束包含,commmit,rollback.僅僅讀資料不修改不對其加鎖,不能保證可重複讀和讀髒資料

2.二級協議:事務t在讀取資料r必須對其加s鎖,讀完後釋放,不保證可重複讀

3.**協議:事務t在讀取資料r必須對其加s鎖,事務結束釋放

多個鎖時,導致乙個鎖始終等待,避免活鎖的方法採用先來先服務

預防死鎖方法:

一次封鎖法:一次將要使用的資料全部加鎖:缺點,降低併發性

順序封鎖法:

死鎖的診斷與解除

資料庫管理系統對併發事務不同的排程可能產生不同的結果,序列排程時正確的

11.5.1 可序列化排程

11.5.2衝突 可序列化排程

衝突操作是指不同的事務對同一資料的讀寫和寫寫操作

如何使用封鎖機制產生可序列化排程

調圖時可序列化的,使用兩段鎖協議方法實現排程可序列化

兩段鎖:事務分為兩個階段對資料加鎖和解鎖

封鎖物件的大小為粒度:邏輯單元:屬性值,其集合,元組,關係,索引項。物理單元:葉,物理記錄。

11.7.1 多粒度封鎖

多粒度樹,顯示封鎖,隱式封鎖,檢查是否衝突

11.7.2 意向鎖

意向鎖:如果對一節點加意向鎖,說明節點的下層節點在被枷鎖,對任意節點加鎖時,必須對其上層節點加鎖。

三種意向鎖:is鎖,ix鎖 six鎖

mysql 併發控制 mysql併發控制

mysql併發控制 當有多個查詢需要同時修改同乙個資料,就會產生併發控制的問題。mysql可以在兩個層面進行併發控制 伺服器層和儲存引擎層。mysql通過加鎖實現併發控制 鎖有兩類 讀鎖 共享鎖,即乙個讀鎖不會阻塞其它讀鎖,多個使用者可同時讀取同乙個資源,而不互相干擾。寫鎖 排他鎖,即乙個寫鎖會阻塞...

併發基礎 11 併發 容器

要實現乙個執行緒安全的佇列有兩個方式 一種是使用阻塞演算法,另一種是使用非阻塞演算法。阻塞演算法 使用阻塞演算法的佇列可以用乙個鎖 入隊和出隊同一把鎖 或兩把鎖 入隊和出隊用不同的鎖 來實現。非阻塞的實現方式則可以使用迴圈cas的方式來實現。concurrentlinkedqueue非阻塞執行緒安全...

事務併發 併發控制(加鎖)

事務處理中的併發控制 1.併發操作 資料庫是乙個共享資源,允許多個使用者程式並行地訪問資料庫,所以當多個使用者併發地訪問同一資料,就可能出現資料的不一致性。例如 假設有兩個事務 t1 和 t2 它們都需要讀出並修改資料 a 其執 況如下所示 執行順序 1 2 3 4 5 6 事務t1 讀aa a 1...