溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

主流關(guān)系數(shù)據(jù)庫鎖實現(xiàn)的區(qū)別

發(fā)布時間:2020-08-13 19:05:13 來源:ITPUB博客 閱讀:91 作者:宅慕思_ 欄目:數(shù)據(jù)庫

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

MySQL對與鎖的實現(xiàn)主要是行鍵的實現(xiàn),采用在頁面頭部記錄位圖的方式,這樣做在檢索行鎖記錄的時候需要到頁面頭部獲取數(shù)據(jù),頁面頭部因為用位圖信息記錄行鎖,所以相比SQL Server省去了較多的資源,無需進行鎖升級。另外gap lock的實現(xiàn)可以很好的支持高級別的隔離級別和并發(fā)性的提升,例如RR隔離級別。

Oracle對鎖的實現(xiàn)是將事務(wù)層和存儲層結(jié)合的方式進行處理,鎖的信息在塊頭的ITL事務(wù)槽和行信息中,這樣做極大的節(jié)省了內(nèi)存資源和鎖資源,鎖幾乎不占用任何資源,鎖定信息完全結(jié)合事務(wù)槽和行標(biāo)志進行判斷,不像MySQL有單獨的內(nèi)存鎖表分離來處理,在rac模式下,可以很方便的對于除了數(shù)據(jù)之外的事務(wù)和鎖信息進行同步,存儲及事務(wù),使得rac的設(shè)計單一有效,但缺點也很明顯,就是過于結(jié)合緊密的事務(wù)層和存儲層使得基于事務(wù)的擴展變得很困難。

PostgreSQL的鎖設(shè)計內(nèi)存中不記錄行鎖信息,行鎖信息由行上的transactionid信息得到,節(jié)省內(nèi)存資源, 在索引回表時采用mvcc技術(shù)避免普通的snapshot now模式或者其他非mvcc需要使用鎖定的劣勢。對于

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI