您好,登錄后才能下訂單哦!
SQL Server實現的鎖主要是由通過鎖表來實現,在內存中開辟專門區域對于不同級別的對象(行、鍵-塊-對象、索引-庫)相應的鎖記錄,事務層和存儲層完全分離,并且鎖占用開銷較大,當鎖占用較多資源的時候,會進行鎖升級降低并發性。
MySQL對與鎖的實現主要是行鍵的實現,采用在頁面頭部記錄位圖的方式,這樣做在檢索行鎖記錄的時候需要到頁面頭部獲取數據,頁面頭部因為用位圖信息記錄行鎖,所以相比SQL Server省去了較多的資源,無需進行鎖升級。另外gap lock的實現可以很好的支持高級別的隔離級別和并發性的提升,例如RR隔離級別。
Oracle對鎖的實現是將事務層和存儲層結合的方式進行處理,鎖的信息在塊頭的ITL事務槽和行信息中,這樣做極大的節省了內存資源和鎖資源,鎖幾乎不占用任何資源,鎖定信息完全結合事務槽和行標志進行判斷,不像MySQL有單獨的內存鎖表分離來處理,在rac模式下,可以很方便的對于除了數據之外的事務和鎖信息進行同步,存儲及事務,使得rac的設計單一有效,但缺點也很明顯,就是過于結合緊密的事務層和存儲層使得基于事務的擴展變得很困難。
PostgreSQL的鎖設計內存中不記錄行鎖信息,行鎖信息由行上的transactionid信息得到,節省內存資源, 在索引回表時采用mvcc技術避免普通的snapshot now模式或者其他非mvcc需要使用鎖定的劣勢。對于
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。