併發相關隨筆 持續更新

2022-01-12 13:32:03 字數 628 閱讀 9898

併發控制策略:

樂觀併發控制與悲觀併發控制。

樂觀併發:通過衝突監測和事務回滾來防止併發業務事務中的衝突

悲觀併發:每次只允許乙個業務事務訪問資料以防止併發業務事務中的衝突

讀寫鎖:

讀寫鎖是互斥的(得到了讀鎖就不能再獲取寫鎖)。讀寫鎖可以用來解決不一致讀問題,悲觀鎖策略可以通過讀加鎖和寫加鎖來處理這個問題。讀資料時需要乙個讀鎖(或者叫共享鎖);寫資料時需要乙個寫鎖(或者叫排它鎖)。對於讀鎖,可以一次多個人對同乙份資料加鎖,但是一旦有人得到了讀鎖,其餘人就不無法再得到寫鎖;而想要獲取寫鎖就必須釋放共享鎖。樂觀鎖測試:所有讀取的資料都需要跟共享資料進行版本標記比較,更新提交時需要核對更新資料的版本標記以及共享資料(讀取的資料)的版本標記,任何不同都意味著衝突的發生。

svn提交時,有時會遇到衝突,隨後會讓你選擇解決衝突的方案:本地還是版本庫。其實就是應用了樂觀鎖。最明顯的標誌就是,每當你提交了一次svn後,都會返回乙個版本號,此版本號就是用來驗證衝突是否發生的。

關聯式資料庫中的crud sql原語中充斥著對兩種併發的應用,同樣也存在於資料庫引擎中。

程式語言級別的讀寫鎖(c#),參考官網的 readerwriterlockslim 類

redis下的事務控制是併發控制策略中的 樂觀併發,並沒有真正的鎖

Mysql 相關(持續更新)

查詢某個資料庫中表個數的sql語句 select count tables,table schema from information schema.tables where table schema db name group by table schema 檢視自己的mysql資料庫支援的引擎有...

Oracle優化相關(持續更新)

create index index name on tablename columnname online direct insert也可以成批插入資料,不過這個插入跟insert插入有區別。前者在插入資料的時候,不會寫重做日誌。而後者常規插入的話,則會寫入重做日誌中 nologging引數使用比...

linux find相關 (持續更新中)

find name txt find name test 指的是當前路徑,查詢全域性的話把.換成 find type f name txt exec rm f find cmin 60 查詢過去乙個小時內修改的檔案 find atime 50 修改時間在最近50天訪問的檔案 find mtime 5...