中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > OCC和MVCC的區(qū)別是什么?

OCC和MVCC的區(qū)別是什么?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 02:11:46 1697134306

一、OCC和MVCC的區(qū)別

最簡單的并發(fā)控制算法是2PL(2 Phase Locking),分為兩階段:

1)獲得鎖階段;

2)釋放鎖階段。

一般2PL被稱為是悲觀并發(fā)控制。

與之相對的是樂觀并發(fā)控制OCC( Optimistic Concurrency Control)。OCC假設(shè)事務(wù)會成功,開始事務(wù)時該讀讀,該寫寫,不加鎖。只有到提交時做一下驗證,驗證這個事務(wù)是不是能夠成功提交。 OCC分為三階段:

1)Read Phase, 對于讀,放到Read Set,對于寫,把寫記到臨時副本,放到Write Set。因為寫是寫到臨時區(qū)的,屬于未提交結(jié)果,其它事務(wù)讀不到(這點是和MVCC的重要區(qū)別);

2)Validation Phase,重掃Read Set,Write Set,檢驗數(shù)據(jù)是否滿足Isolation Level,如果滿足則Commit,否則Abort;

3)WritePhase,或者叫做Commit Phase,把臨時副本區(qū)的數(shù)據(jù)更新到數(shù)據(jù)庫中,完成事務(wù)提交。

MVCC(Multiversion Concurrency Control)是另一種并發(fā)控制算法。MVCC為每條記錄維護多個快照(Snapshot),通過起止兩個時間戳(Begin Timestamp / End Timestamp)維護副本的可見性。讀寫進行的不同操作如下:

Update,創(chuàng)建一個新的版本(Version);

Delete,更新End Timestamp。

Read,通過起止時間戳判定記錄是否對當(dāng)前事務(wù)可見(OCC讀不到未提交的記錄,所以不需要做這個判斷)。

這樣,通過Snapshot,實現(xiàn)了讀寫互不阻塞。但為了實現(xiàn)Serializable,對讀寫規(guī)則還是要進行一定的限制。MVCC通過不同的方法實現(xiàn)。有基于鎖定的,MV-2PL,如MySQL。有基于時間排序(Time Ordering)的,叫MV-TO,如PostgreSQL。其實準確來說,PG的實現(xiàn)叫SSI(Serializable Snapshot Isolation),不算MV-TO。也有像OCC那樣基于樂觀算法的,MV-OCC,即讀寫時不做驗證,延遲到提交時驗證。

效率上,2PL讀寫阻塞,在維護鎖開銷較小時較好;OCC不維護鎖,一些比較新的OCC算法吞吐可以做得很高,不過相應(yīng)回滾也會比較高,沖突比較小和驗證開銷小時比較好;MVCC對不同類型的workload都有很好的適應(yīng)性,讀寫互不阻塞,回滾率也比OCC好,很多RDBMS也都用MVCC,如Oracle,PostgreSQL,MySQL。還有一個效率問題,隨著現(xiàn)在CPU核心數(shù)越來越多,考慮并發(fā)控制算法往往需要考慮它的多核擴展性好不好。由于多數(shù)MVCC,OCC算法都需要時間戳分配,時間戳通常對全局變量進行CAS(Compare And Swap)操作來計算,當(dāng)核心數(shù)變大時,CAS的爭用也變大了。

另外,現(xiàn)在的許多并發(fā)控制方法經(jīng)常混合了多種算法。先有人提出了A,后有人提出了B,再后來就有人提出了A+B,那么A+B應(yīng)該是叫A呢還是叫B呢?就像上面提到的MV-2PL,MV-TO,MV-OCC。

延伸閱讀:

二、id的一些典型的類型

整型:整型通常來說是優(yōu)異的選擇,這是因為整型的運算和比較都很快,而且還可以設(shè)置 AUTO_INCREMENT 屬性自動遞增。ENUM 和 SET:通常不會選擇枚舉和集合作為 id,然后對于那些包含有“類型”、“狀態(tài)”、“性別”這類型的列來說是挺合適的。例如我們需要有一張表存儲下拉菜單時,通常會有一個值和一個名稱,這個時候值使用枚舉作為主鍵也是可以的。字符串:盡可能地避免使用字符串作為 id,一是字符串占據(jù)的空間更大,二是通常會比整型慢。選用字符串作為 id 時,還需要特別注意 MD5、SHA1和 UUID 這些函數(shù)。每個值是在很大范圍的隨機值,沒有次序,這會導(dǎo)致插入和查詢更慢:插入的時候,由于建立索引是隨機位置(會導(dǎo)致分頁、隨機磁盤訪問和聚集索引碎片),會降低插入速度。查詢的時候,相鄰的數(shù)據(jù)行在磁盤或內(nèi)存上上可能跨度很大,也會導(dǎo)致速度更慢。

如果確實要使用 UUID 值,應(yīng)當(dāng)移除掉“-”字符,或者是使用 UNHEX 函數(shù)將其轉(zhuǎn)換為16字節(jié)數(shù)字,并使用 BINARY(16)存儲。然后可以使用 HEX 函數(shù)以十六進制的方式進行獲取。UUID 產(chǎn)生的方法有很多,有些是隨機分布的,有些是有序的,但是即便是有序的性能也不如整型。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
人大金倉數(shù)據(jù)庫是完全基于自研,是基于pc或是別的什么?

一、人大金倉數(shù)據(jù)庫北京人大金倉數(shù)據(jù)庫管理系統(tǒng)KingbaseES基于自主研究,它是北京人大金倉信息技術(shù)股份有限公司經(jīng)過多年努力,開發(fā)的具有自主知...詳情>>

2023-10-13 03:51:35
在Nodejs中使用MySQL數(shù)據(jù)庫的優(yōu)異實踐是什么?

一、在Nodejs中使用MySQL數(shù)據(jù)庫的優(yōu)異實踐1. 請一直使用pool,沒有何時。2. pool在程序初始化的時候創(chuàng)建,無需銷毀,從中抽取實例連接就行,無...詳情>>

2023-10-13 03:26:40
InnoDB的意向鎖有什么作用?

一、InnoDB的意向鎖的作用1、鎖沖突優(yōu)化意向鎖提供了一種機制,讓事務(wù)可以事先聲明它將在某個級別對數(shù)據(jù)行進行鎖定。這樣其他事務(wù)可以更快速地...詳情>>

2023-10-13 03:08:17
文件系統(tǒng)和數(shù)據(jù)庫是由于什么原因才選擇B樹或B+樹建立?

一、文件系統(tǒng)和數(shù)據(jù)庫是由于什么原因才選擇B樹或B+樹建立索引的索引的目標是要找到數(shù)據(jù)所在的物理位置,因此用樹去實現(xiàn)搜索數(shù)據(jù)所在物理位置,...詳情>>

2023-10-13 03:03:02
系統(tǒng)運維、IT運維、網(wǎng)絡(luò)運維、數(shù)據(jù)庫運維有哪些區(qū)別?

一、系統(tǒng)運維、IT運維、網(wǎng)絡(luò)運維、數(shù)據(jù)庫運維區(qū)別網(wǎng)絡(luò)運維,數(shù)據(jù)庫運維,Linux運維,window運維,桌面運維,根底架構(gòu)運維,信息體系運維,ERP體...詳情>>

2023-10-13 02:58:27
快速通道
主站蜘蛛池模板: 99精品国产在热久久 | 午夜免费看片 | 91精品国产91综合久久蜜臀 | 涩涩涩999| 草比网站 | 国产精品自产av一区二区三区 | 日本一区二区三区四区 | 精品一二区 | 中文字幕不卡在线观看 | 欧美成人精品在线观看 | 精品一区二区视频 | 欧美成人精品激情在线观看 | 一区在线不卡 | www.夜夜操.com | 国产一区不卡在线 | 日本精品免费 | 免费日本黄色 | 成人精品 | 91亚洲视频| 中文字幕视频二区 | 欧美视频亚洲视频 | 青青久| 欧美日本国产欧美日本韩国99 | 日韩在线大片 | 在线久草| 国产三区在线观看视频 | 亚洲第一中文字幕 | 国产精品久久久久久久裸模 | 在线看91 | 凹凸日日摸日日碰夜夜爽孕妇 | 国产在线精品一区 | 国产小视频免费在线观看 | 日日操夜夜操天天操 | 91中文字幕 | 欧美精品一区二区三区免费视频 | 国产精品粉嫩白浆在线观看 | 国产日日操 | 激情欧美日韩一区二区 | 亚洲一区二区精品视频 | 99国产视频| 国产精品视频一区二区三区四区五区 |