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

面試之MySQL中的mvcc

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

面試之MySQL中的mvcc,面試,職場和發(fā)展

?首先需要知道什么是 MVCC?

MVCC 多版本并發(fā)控制。MVCC就是通過數(shù)據(jù)行的多個版本管理來實現(xiàn)數(shù)據(jù)庫的并發(fā)控制。這項技術(shù)是的InnoDB的事務(wù)隔離級別下執(zhí)行一致性讀 有了保證。換言之,就是為了查詢一些正在被一個事務(wù)更新的行。并且可以看到他們被更新之前的值。查詢在做查詢的時候就不用等待 另一個事務(wù)釋放鎖。

MVCC在MySQL InnoDB中的實現(xiàn)主要是為了提高數(shù)據(jù)庫并發(fā)性能,用更好的方式就是 讀-寫 沖突,做到即使有多寫沖突時。也能做到 不加鎖,非阻塞并發(fā)讀,而這個讀指的就是 快照讀,當前讀實際時一種加鎖的操作,是悲觀鎖的實現(xiàn)。而MVCC本質(zhì)是采用悲觀鎖思想的一種方式。

面試之MySQL中的mvcc,面試,職場和發(fā)展

對應(yīng)InnoDB來說,聚簇索引中的每個記錄都包含了兩個必要的隱藏字段:

??? trx_id:每次一個事務(wù)對某條聚簇索引記錄進行改動時,都會把該事務(wù)的事務(wù)id賦值給trx_id隱藏列。
??? roll_pointer:回滾指針,每次修改數(shù)據(jù)時,都會把舊數(shù)據(jù)放入undo log日志中,新的數(shù)據(jù)指向該舊數(shù)據(jù),做成一個版本鏈,該指針字段就稱為回滾指針,通過該指針可以找到修改前的數(shù)據(jù)。
面試之MySQL中的mvcc,面試,職場和發(fā)展

四、Read View(讀視圖)

有了undo log日志就可以讀取記錄的歷史版本。但是如何去欸的那個具體的版本記錄?就需要用Read View記錄,他解決了行的可見性問題。

RC(讀已提交) 和 RR(可重復(fù)讀)必須要保證讀的數(shù)據(jù) 都是其他事務(wù)已經(jīng)提交的數(shù)據(jù)。所以,其他事務(wù)修改數(shù)據(jù),但是還未提交,我們不可以訪問此數(shù)據(jù)。但是可以通過MVCC可以訪問 對應(yīng)的歷史版本。核心問題:判斷版本鏈中的那條數(shù)據(jù) 對于當前事務(wù)是 可見的。這也是 ReadView 需要解決的問題。

ReadView 就是當某一個使用MVCC機制使用快照讀而形成的視圖。該試圖是當前所有 活躍事務(wù)id

組成一個列表的快照。(記錄版本鏈的統(tǒng)計信息)

面試之MySQL中的mvcc,面試,職場和發(fā)展

??? m_trx_ids:表示在生成Read View時當前系統(tǒng)中活躍的事務(wù)id列表。提交了的事務(wù)不在其中。
??? min_trx__id:活躍的事務(wù)中最小的事務(wù)id。指的版本鏈的末尾
??? max_trx_id:表示生成Read View時系統(tǒng)應(yīng)該分配給下一個事務(wù)的id值,同樣也表示系統(tǒng)中最大的事務(wù)id值。

? creator_trx_id:示生成該ReadView的事務(wù)的事務(wù)id

具體ReadView的匹配規(guī)則用下來描述

面試之MySQL中的mvcc,面試,職場和發(fā)展

解釋圖片中的具體數(shù):

圖片中的活躍事務(wù)(活躍事務(wù)= 讀未提交的事務(wù))有 90,100,200。

則對應(yīng)的 trx_ids? = (90,100,200)

min_trx_id =90,就是最小的事務(wù)號,也就是m_ids中的最小值,則版本鏈的隊尾數(shù)據(jù)。

max_trx_id = 201. 是因為它為系統(tǒng)分配下一個事務(wù)的id。當前事務(wù)id=200.下一個就是201.并不是trx_ids中的最大值。最大值+1.

creator_trx_id:由于ReadView 是由當前事務(wù)創(chuàng)建,當前事務(wù)=201,所以 creatoe_trx_id = 201.

接下來就是 具體的匹配兜底規(guī)則:

需要理解的是:當前事務(wù)是201,我們需要判斷的是判斷鏈條中的那些數(shù)據(jù)可以訪問。(就是用 200,100,90)分別進行匹配兜底判斷。

1.如果被訪問版本的trx_id 等于 ReadView中的creator_trx_id ,就是說明當前事務(wù) 正在訪問被他自己修改的記錄,因此是可以訪問的。

2.如果被訪問版本的trx_id 小于 ReadView中的 min_trx_id,就是說明該版本的事務(wù) 在 生成ReadView之前就已經(jīng)提交,因此可以訪問的。

3.如果被訪問版本的trx_id 小于 ReadView中的 max_trx_id,就是說明該版本的事務(wù) 在 生成ReadView之后才開啟,因此是不可以訪問。

4.如果被訪問版本的trx_id屬性值在ReadViewmin_trx_idmax_trx_id之間,那就需要判斷一下trx_id屬性值是不是在m_ids列表中,如果在,說明創(chuàng)建ReadView時生成該版本的事務(wù)還是活躍的,該版本不可以被訪問;如果不在,說明創(chuàng)建ReadView時生成該版本的事務(wù)已經(jīng)被提交,該版本可以被訪問。

面試之MySQL中的mvcc,面試,職場和發(fā)展

?

  • READ COMMITTED —— 每次讀取數(shù)據(jù)前都生成一個ReadView
  • REPEATABLE READ —— 在第一次讀取數(shù)據(jù)時生成一個ReadView



?文章來源地址http://www.zghlxwxcb.cn/news/detail-570193.html

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

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

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

相關(guān)文章

  • 如何手機搜學法減分答案? #媒體#職場發(fā)展

    如何手機搜學法減分答案? #媒體#職場發(fā)展

    今天分享擁有拍照搜題、文字搜題、語音搜題、多重搜題等搜題模式,可以快速查找問題解析,加深對題目答案的理解。 1.證件照全能管家(APP) 一個非常好用的證件照APP 常用的證件照尺寸和底色都有、日常的證件照編輯完全夠用,支持一鍵智能拍攝證件照,還可以對照片

    2024年02月19日
    瀏覽(21)
  • [office] excel成績表格數(shù)據(jù)排名次的教程 #職場發(fā)展#知識分享#媒體

    excel成績表格數(shù)據(jù)排名次的教程 Excel 中經(jīng)常需要使用到 排名 次的技巧,成績表格數(shù)據(jù)具體該如何排名呢?接下來是小編為大家?guī)淼膃xcel成績表格數(shù)據(jù)排名次的教程,供大家參考。 步驟1:不管在學校還是各個統(tǒng)計領(lǐng)域,排名應(yīng)用隨處可見,如果排序會打亂原有次序,那么好多

    2024年02月21日
    瀏覽(15)
  • 【職業(yè)人生】如何有效的在職場當中避免工作失誤和提高個人發(fā)展

    【職業(yè)人生】如何有效的在職場當中避免工作失誤和提高個人發(fā)展

    ? ? ?《左傳·宣公二年》:“人誰無過,過而能改,善莫大焉?!惫磐駚?,多少人犯過錯誤。強大如“智絕”的諸葛孔明,也有街亭之失。職場人更是難免會在工作中出現(xiàn)失誤。 ? ? 在職場生涯當中避免不了在工作當中帶來的失誤,在這過程當中,我們應(yīng)當要學會怎么去

    2024年02月08日
    瀏覽(16)
  • 突破職場競爭,引領(lǐng)未來發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認證》

    突破職場競爭,引領(lǐng)未來發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認證》

    就業(yè)形勢堪憂,什么最有保障?考個“國家級”證書傍身吧! 工信部教考中心作為中國領(lǐng)先的行業(yè)技能認證機構(gòu),其頒發(fā)的認證證書不僅代表了個人在信息技術(shù)領(lǐng)域的專業(yè)能力,更可以錄入工業(yè)和信息化技術(shù)技能人才數(shù)據(jù)庫,這是一個重要的信息資源平臺,它可以幫助企業(yè)和

    2024年02月05日
    瀏覽(17)
  • [office] Excel中函數(shù)進行計算兩個日期參數(shù)差值的方法 #職場發(fā)展#學習方法#媒體

    Excel中函數(shù)進行計算兩個日期參數(shù)差值的方法 在excel使用中,如果想計算兩個日期參數(shù)的差值,該用什么函數(shù)和如何使用呢?今天,小編就教大家在Excel中函數(shù)進行計算兩個日期參數(shù)差值的方法。 Excel中函數(shù)進行計算兩個日期參數(shù)差值的步驟 在excel中計算兩個日期參數(shù)的差值,

    2024年02月20日
    瀏覽(21)
  • 【MySQL】MVCC詳解與MVCC實現(xiàn)原理(MySQL專欄啟動)

    【MySQL】MVCC詳解與MVCC實現(xiàn)原理(MySQL專欄啟動)

    ??作者簡介: 小明java問道之路,專注于研究 Java/ Liunx內(nèi)核/ C++及匯編/計算機底層原理/源碼,就職于大型金融公司后端高級工程師,擅長交易領(lǐng)域的高安全/可用/并發(fā)/性能的架構(gòu)設(shè)計與演進、系統(tǒng)優(yōu)化與穩(wěn)定性建設(shè)。 ?? 熱衷分享,喜歡原創(chuàng)~ 關(guān)注我會給你帶來一些不一樣的

    2023年04月09日
    瀏覽(20)
  • 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日
    瀏覽(101)
  • MySql的MVCC機制

    MySql的MVCC機制

    在讀已提交的級別下,事務(wù)B可以讀到事務(wù)A持有寫鎖的的記錄,且讀到的是未更新前的,為何寫讀沒有沖突? 可重復(fù)讀級別,事務(wù)B可以更新事務(wù)A已經(jīng)獲取讀鎖的記錄,且更新后,事務(wù)A依然可以獲取讀鎖,為何讀-寫-讀沒有沖突? 在可重復(fù)讀級別,幻讀沒有產(chǎn)生 其中,前兩個

    2024年02月08日
    瀏覽(22)
  • MySQL的MVCC

    MVCC(多版本并發(fā)控制)multiversion concurrency control 讀讀并發(fā):可以并發(fā) 讀寫并發(fā)(innoDB):MVCC機制解決? 寫寫:互斥 快照讀:不加鎖的簡單select屬于快照讀,即不加鎖的非阻塞讀 快照讀的基礎(chǔ)是undolog版本鏈 聚簇索引中的隱藏列 trx_id:事務(wù)對數(shù)據(jù)改動時,事務(wù)將id賦值給trx_

    2024年01月22日
    瀏覽(6)
  • MySQL — MVCC

    MySQL — MVCC

    InnoDB是一個多版本的存儲引擎。它保留有關(guān)已更改行的舊版本的信息,以支持并發(fā)和回滾等事務(wù)性特性。這些信息存儲在undo表空間中的數(shù)據(jù)結(jié)構(gòu)稱為回滾段。InnoDB使用回滾段中的信息來執(zhí)行事務(wù)回滾所需的undo操作。它還使用這些信息來構(gòu)建數(shù)據(jù)行的早期版本,以實現(xiàn)一致的

    2024年02月13日
    瀏覽(15)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包