SQL Server實現(xiàn)的鎖主要是由通過鎖表來實現(xiàn),在內(nèi)存中開辟專門區(qū)域?qū)τ诓煌墑e的對象(行、鍵-塊-對象、索引-庫)相應的鎖記錄,事務層和存儲層完全分離,并且鎖占用開銷較大,當鎖占用較多資源的時候,會進行鎖升級降低并發(fā)性。

MySQL對與鎖的實現(xiàn)主要是行鍵的實現(xiàn),采用在頁面頭部記錄位圖的方式,這樣做在檢索行鎖記錄的時候需要到頁面頭部獲取數(shù)據(jù),頁面頭部因為用位圖信息記錄行鎖,所以相比SQL Server省去了較多的資源,無需進行鎖升級。另外gap lock的實現(xiàn)可以很好的支持高級別的隔離級別和并發(fā)性的提升,例如RR隔離級別。
Oracle對鎖的實現(xiàn)是將事務層和存儲層結(jié)合的方式進行處理,鎖的信息在塊頭的ITL事務槽和行信息中,這樣做極大的節(jié)省了內(nèi)存資源和鎖資源,鎖幾乎不占用任何資源,鎖定信息完全結(jié)合事務槽和行標志進行判斷,不像MySQL有單獨的內(nèi)存鎖表分離來處理,在rac模式下,可以很方便的對于除了數(shù)據(jù)之外的事務和鎖信息進行同步,存儲及事務,使得rac的設計單一有效,但缺點也很明顯,就是過于結(jié)合緊密的事務層和存儲層使得基于事務的擴展變得很困難。
PostgreSQL的鎖設計內(nèi)存中不記錄行鎖信息,行鎖信息由行上的transactionid信息得到,節(jié)省內(nèi)存資源, 在索引回表時采用mvcc技術避免普通的snapshot now模式或者其他非mvcc需要使用鎖定的劣勢。對于
分享文章:主流關系數(shù)據(jù)庫鎖實現(xiàn)的區(qū)別-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.chinadenli.net/article18/deiogp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、品牌網(wǎng)站建設、面包屑導航、虛擬主機、企業(yè)建站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容