国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MVCC究竟是什么?

這篇具有很好參考價值的文章主要介紹了MVCC究竟是什么?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.MVCC概念

MVCC,全稱多版本并發(fā)控制
MVCC究竟是什么?
通俗的來說MVCC就是為了在讀取數(shù)據(jù)時不加鎖來提高讀取效率的一種辦法,MVCC解決的是讀寫時線程安全問題,線程不用去搶占讀寫鎖。MVCC中的讀就是快照讀,也就是普通的select語句。

2.MVCC原理

mvcc的具體實現(xiàn)通過數(shù)據(jù)庫中的三個隱式字段、undolog、readview

其中三個隱式字段分別是:

  1. DB_TRX_ID:最近修改事務(wù)ID
  2. DB_ROLL_PTR:回滾指針,指向這條記錄上一個版本,用于配合undolog,指向上一個版本
  3. DB_ROW_ID:隱藏主鍵,如果表結(jié)果沒有指定主鍵,將會生成該隱藏字段

undolog(回滾日志):

在insert、update、delete的時候產(chǎn)生便于數(shù)據(jù)回滾的日志

readview(讀視圖):

是快照讀SQL執(zhí)行時MVCC提取數(shù)據(jù)的依據(jù)(通俗的來說就是select的時候我們需要知道可以讀取哪個版本下的數(shù)據(jù)),記錄并維護當(dāng)前活躍的事務(wù),read view中包含四個核心字段

  1. m_ids:當(dāng)前活躍的事務(wù)ID集合
  2. min_trx_id:最小活躍事務(wù)ID
  3. max_trx_id:預(yù)分配事務(wù)ID,當(dāng)前最大事務(wù)ID+1(因為事務(wù)ID是自增的)
  4. creator_trx_id:readview創(chuàng)建者的事務(wù)ID

readview中規(guī)定了版本鏈的訪問規(guī)則,trx_id表示當(dāng)前事務(wù)id:

  • 1.trx_id==creator_trx_id:可以訪問該版本,說明數(shù)據(jù)是當(dāng)前這個事務(wù)更改的
  • 2.trx_id<min_trx_id:可以訪問,說明數(shù)據(jù)已經(jīng)提交了
  • 3.trx_id>max_trx_id:不可以訪問,說明事務(wù)時在readview生成之后才開啟的
  • 4.min_trx_id<=trx_id<=max_trx_id:如果trx_id不在m_idx中,是可以訪問該版本的,說明數(shù)據(jù)已經(jīng)提交

不同的隔離級別生成readview的時機不同:文章來源地址http://www.zghlxwxcb.cn/news/detail-691807.html

  • read committed:在事務(wù)每執(zhí)行一次快照時生成readview
  • repeatable read:僅在同一事務(wù)第一次快照讀時生成readview,后續(xù)復(fù)用該readview,所以每次讀取的結(jié)果都一樣

到了這里,關(guān)于MVCC究竟是什么?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 深入解析MVCC:多版本并發(fā)控制的數(shù)據(jù)庫之道

    目錄 引言 一、什么是MVCC? 二、MVCC的實現(xiàn)原理 2.1版本號 2.1.1版本號的作用: 2.1.2版本號的組成: 2.1.3.示例 2.2事務(wù)id 2.2.1事務(wù)ID的作用: 2.2.2事務(wù)ID的生成: 2.2.3示例: 2.3 快照(Snapshot) 2.3.1快照的作用: 2.3.2快照的實現(xiàn)方式: 2.3.3示例: 2.4版本鏈(Version Chain) 2.4.1版本鏈

    2024年01月24日
    瀏覽(28)
  • java八股文面試[數(shù)據(jù)庫]——可重復(fù)讀怎么實現(xiàn)的(MVCC)

    java八股文面試[數(shù)據(jù)庫]——可重復(fù)讀怎么實現(xiàn)的(MVCC)

    可重復(fù)讀(repeatable read)定義: 一個事務(wù)執(zhí)行過程中看到的數(shù)據(jù),總是 跟這個事務(wù) 在 啟動時 看到的數(shù)據(jù)是一致的。 MVCC MVCC, 多版本并發(fā)控制 , 用于實現(xiàn) 讀已提交 和 可重復(fù)讀 隔離級別。 MVCC的核心就是 Undo log多版本鏈 + Read view ,“MV”就是通過 Undo log來保存數(shù)據(jù)的歷史版

    2024年02月09日
    瀏覽(100)
  • 數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: Oracle數(shù)據(jù)庫ASM磁盤組有4塊成員盤。 數(shù)據(jù)庫故障分析: Oracle數(shù)據(jù)庫ASM磁盤組掉線 ,ASM實例無法掛載,用戶聯(lián)系我們要求恢復(fù)oracle數(shù)據(jù)庫。 數(shù)據(jù)庫數(shù)據(jù)恢復(fù)工程師拿到磁盤后,先將所有磁盤以只讀方式進行扇區(qū)級別的鏡像備份,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢

    2024年02月13日
    瀏覽(40)
  • Oracle數(shù)據(jù)庫

    Oracle數(shù)據(jù)庫

    ①層次型數(shù)據(jù)庫 ②網(wǎng)狀型數(shù)據(jù)庫 ③關(guān)系型數(shù)據(jù)庫(主要介紹) E-R圖:屬性(橢圓形),實體(矩形),聯(lián)系(菱形-一對一、一對多、多對多) 注:有的聯(lián)系也有屬性 關(guān)系型數(shù)據(jù)庫的設(shè)計范式: 第一范式(1NF):屬性不可再分,字段保證原子性 第二范式(2NF):在滿足1

    2024年02月08日
    瀏覽(33)
  • Oracle 數(shù)據(jù)庫恢復(fù)刪除的數(shù)據(jù)

    需求描述: 同事讓刪除臟數(shù)據(jù),結(jié)果刪錯了,需要恢復(fù)數(shù)據(jù) 思路: 利用閃回恢復(fù)數(shù)據(jù)只能恢復(fù)15分鐘之內(nèi)的,后面undo空間會被重寫,就恢復(fù)不了,所以刪除數(shù)據(jù)后,要謹慎再三確認,若發(fā)現(xiàn)不對,則利用閃回恢復(fù) 先查詢刪除時的時間節(jié)點的快照 查到時間戳之后 閃回恢復(fù)數(shù)

    2024年01月24日
    瀏覽(36)
  • 【數(shù)據(jù)庫】日常使用PL/SQL 登錄ORACLE 數(shù)據(jù)庫查詢數(shù)據(jù)

    一、PL/SQL 登錄方式 username: ##訪問數(shù)據(jù)庫的賬號 password: ##訪問數(shù)據(jù)庫的密碼 Databse: ##數(shù)據(jù)庫IP地址/實例名 數(shù)據(jù)庫集群心跳地址/實例名 Connect as : ##Normal,如果使用sysdba賬戶登錄選擇SYSDBA 二、PL/SQL使用SQL語句查詢 點擊上方導(dǎo)航欄,New,選擇SQL Window,即可再次輸入要查詢的

    2024年02月19日
    瀏覽(30)
  • 【Oracle】收集Oracle數(shù)據(jù)庫內(nèi)存相關(guān)的信息

    【Oracle】收集Oracle數(shù)據(jù)庫內(nèi)存相關(guān)的信息

    【聲明】文章僅供學(xué)習(xí)交流,觀點代表個人,與任何公司無關(guān)。 編輯|SQL和數(shù)據(jù)庫技術(shù)(ID:SQLplusDB) Oracle數(shù)據(jù)庫包含多個內(nèi)存區(qū)域,每個區(qū)域都包含多個子組件。 Oracle Database Memory Structures 根據(jù)具體問題的需要,可以通過如下命令收集Oracle數(shù)據(jù)庫內(nèi)存相關(guān)的信息。 例: 注:SET

    2024年01月21日
    瀏覽(30)
  • Oracle數(shù)據(jù)庫面試題 精選 Oracle 面試題

    1.解釋冷備份和熱備份的不同點以及各自的優(yōu)點 冷備份 發(fā)生在數(shù)據(jù)庫已經(jīng)正常關(guān)閉的情況下,將關(guān)鍵性文件拷貝到另外位置的一種說法。適用于所有模式的數(shù)據(jù)庫。 優(yōu)點 1. 是非??焖俚膫浞莘椒ǎㄖ恍杩截愇募?2. 容易歸檔(簡單拷貝即可) 3. 容易恢復(fù)到某個時間點上(只

    2024年02月05日
    瀏覽(25)
  • oracle數(shù)據(jù)庫巡檢腳本

    用于Oracle數(shù)據(jù)庫巡檢的示例腳本:?

    2024年02月14日
    瀏覽(24)
  • 快速監(jiān)控 Oracle 數(shù)據(jù)庫

    Oracle 數(shù)據(jù)庫在行業(yè)內(nèi)應(yīng)用廣泛,通常存放的非常重要的數(shù)據(jù),監(jiān)控是必不可少的,本文使用 Cprobe 采集 Oracle 監(jiān)控數(shù)據(jù),極致簡單,分享給大家。 安裝配置 Oracle 簡單起見,我使用 Docker 啟動 Oracle,命令如下: 如上命令啟動之后,Oracle 的監(jiān)聽端口是 1521,用戶名/密碼是 syst

    2024年01月20日
    瀏覽(61)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包