每日乙個知識點 MVCC是什麼

2022-03-31 06:13:37 字數 856 閱讀 5421

每日乙個知識點系列的目的是針對某乙個知識點進行概括性總結,可在一分鐘內完成知識點的閱讀理解,此處不涉及詳細的原理性解讀,只作為一種拋磚引玉。真正的理解一定是你自我研究探索所收穫的知識。

愛生活,愛編碼,本文已收錄架構技術專欄關注這個喜歡分享的地方。

開源專案:

mvcc,multi-version concurrency control,多版本併發控制

資料庫有四種隔離級別,通過mvcc在每種查詢下的情況也是不一樣的。

在每次insert 、update 、delete都會生成乙個事物id,事物id 是遞增的。聚簇索引記錄中都包含兩個必要字段 trx_id 、roll_pointer ,每次修改都會生成undo日誌(insert沒有,因為沒歷史)。

這裡有幾個主要就是概念就是版本鏈、readview。

版本鏈:

對於使用innodb儲存引擎的表來說,它的聚簇索引記錄中都包含兩個必要的隱藏列(row_id並不是必要的,我們建立的表中有主鍵或者非null唯一鍵時都不會包含row_id列)

readview:

(每種隔離級別也不太一樣),主要包含當前系統中還有哪些活躍的讀寫事務,把它們的事務id放到乙個列表中,把這個列表命名為為m_ids,根據版本鏈trx_id 和m_ids 的比較來進行版本選擇(具體規則可以自己查查)

愛生活,愛編碼,本文已收錄架構技術專欄關注這個喜歡分享的地方。

開源專案:

記乙個知識點 arguments

js的函式中有乙個很重要的物件,arguments.arguments這個物件可以用來獲取函式在呼叫時候的傳入的實參.通過arguments.length可以知道函式此次被呼叫傳入了幾個引數,通過arguments n 可以拿到函式第 n 1 個引數的值,請見示例 我們先建立乙個函式 var add...

Excel每天乙個知識點 引用

excel的引用類似於程式設計裡邊的指標變數 不是很恰當的比喻 主要被用來做公式套用處理,類似於形參傳值。先來說幾個概念 1 位置識別符號 列 用大寫的英文本母表示,比如a,b,c,d,aa,ab.最大列16384 xfd 行 用數字表示,比如1,2,3,4,5,最大行1048576 excel20...

python 閉包 乙個很小知識點

修改前 返回x的乘法函式,是函式,呼叫才執行 defmake return lambda x i x for i in range 3 for r in make print r 4 期望輸出 04 8實際輸出 88 8原因 i因為閉包延遲繫結,到執行的時候已經為2 所以引數4一直只和最終的2相乘 ...