主流關聯式資料庫鎖實現的區別
SQL Server實現的鎖主要是由透過鎖表來實現,在記憶體中開闢專門區域對於不同級別的物件(行、鍵-塊-物件、索引-庫)相應的鎖記錄,事務層和儲存層完全分離,並且鎖佔用開銷較大,當鎖佔用較多資源的時候,會進行鎖升級降低併發性。
MySQL對與鎖的實現主要是行鍵的實現,採用在頁面頭部記錄點陣圖的方式,這樣做在檢索行鎖記錄的時候需要到頁面頭部獲取資料,頁面頭部因為用點陣圖資訊記錄行鎖,所以相比SQL Server省去了較多的資源,無需進行鎖升級。另外gap lock的實現可以很好的支援高階別的隔離級別和併發性的提升,例如RR隔離級別。
Oracle對鎖的實現是將事務層和儲存層結合的方式進行處理,鎖的資訊在塊頭的ITL事務槽和行資訊中,這樣做極大的節省了記憶體資源和鎖資源,鎖幾乎不佔用任何資源,鎖定資訊完全結合事務槽和行標誌進行判斷,不像MySQL有單獨的記憶體鎖表分離來處理,在rac模式下,可以很方便的對於除了資料之外的事務和鎖資訊進行同步,儲存及事務,使得rac的設計單一有效,但缺點也很明顯,就是過於結合緊密的事務層和儲存層使得基於事務的擴充套件變得很困難。
PostgreSQL的鎖設計記憶體中不記錄行鎖資訊,行鎖資訊由行上的transactionid資訊得到,節省記憶體資源, 在索引回表時採用mvcc技術避免普通的snapshot now模式或者其他非mvcc需要使用鎖定的劣勢。對於
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950462/viewspace-2659438/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java分散式鎖方案和區別 - Redis,Zookeeper,資料庫Java分散式Redis資料庫
- 利用ODBC實現Domino和關聯式資料庫的互操作 (轉)資料庫
- Java響應式關聯式資料庫多執行緒實現方式Java資料庫執行緒
- Web Sql 關聯式資料庫WebSQL資料庫
- 關聯式資料庫設計資料庫
- 關聯式資料庫之父 (轉)資料庫
- 關聯式資料庫的封建迷信資料庫
- 分散式鎖的3種實現(資料庫、快取、Zookeeper)分散式資料庫快取
- 基於資料庫、redis和zookeeper實現的分散式鎖資料庫Redis分散式
- 關聯式資料庫與文件資料庫對比資料庫
- 關聯式資料庫很快會替代向量資料庫資料庫
- 如實實現不同資料庫之間的 (模型) Eloquent: 關聯資料庫模型
- 關聯式資料庫分片原則資料庫
- 關聯式資料庫 Query_Execution資料庫
- 關係型資料庫和非關係型資料庫的區別資料庫
- 資料庫 - 關聯式資料庫標準語言SQL資料庫SQL
- 從關聯式資料庫遷移到NoSQL雲資料庫資料庫SQL
- 【轉載】關聯式資料庫還是NoSQL資料庫資料庫SQL
- 分散式鎖的區別分散式
- 如何簡單實現關聯型別資料的Excel匯出?型別Excel
- 從關聯式資料庫遷移到CouchDB資料庫
- 如何將Bitcoin比特幣區塊鏈資料匯入關聯式資料庫比特幣區塊鏈資料庫
- 關於Oracle資料庫與MySQL資料庫的幾點區別Oracle資料庫MySql
- MapReduce 與 關係型資料庫的區別資料庫
- SpringBoot基於資料庫實現簡單的分散式鎖Spring Boot資料庫分散式
- 鍵值資料庫與關聯式資料庫有沒有融合的可能?資料庫
- 從關聯式資料庫向NoSQL遷移資料庫SQL
- 關聯式資料庫SQL語言略解資料庫SQL
- 【分散式鎖】通過MySQL資料庫的表來實現-V1分散式MySql資料庫
- 物件導向的關聯式資料庫設計(轉)物件資料庫
- 資料庫中varchar和Nvarchar區別與聯絡資料庫
- 主流資料庫欄位型別轉.Net型別的方法資料庫型別
- 樂觀鎖和悲觀鎖策略的區別與實現
- 主流開源分散式圖資料庫 Benchmark分散式資料庫
- 關於資料庫鎖的總結資料庫
- 如何將傳統關聯式資料庫的資料匯入Hadoop?資料庫Hadoop
- 【clickhouse專欄】資料庫、資料倉儲之間的區別與聯絡資料庫
- 事件溯源將顛覆關聯式資料庫! - Remy事件資料庫REM