現在多種數據庫的讀寫模型對比

目錄

mongDB

read

write

ES

read

write

MySql

write

總結


mongDB

3.0 版本后的WiredTiger存儲引擎

read

1. 應用通過driver 發起Buffer I/O讀操作,由操作系統將磁盤數據頁加載到文件系統的頁緩存區

2. 引擎層讀取頁緩沖區的數據,進行解壓后放到內部緩存區

3. 在內存中完成匹配查詢,將結果返合給應用

tip:? MongoDB默認的內部緩存大小達到了機器內存的一半; 由wireTigerCacheSize參數指定

write

1.?應用通過driver 發起寫入操作

2.數據庫從內部緩存獲取當前記錄所在的頁快,如果不存在則會從磁盤中加載

3.WiredTiger 開始寫事物,修改數據寫入頁快的更新表,

4. 同時寫Journal 日志(ReDo Log),默認100ms 寫入磁盤;用于彌補CheckPoint的不足

5. 數據庫默認每隔60s 執行CheckPoint ,將內存中數據寫入到磁盤中

ES

read

1. clinet 發動請求到 coordinate node

2.?coordinate node 請發轉到 shard 對應的主節點或者備份節點

3. 每個shard 節點將自己的搜索結果返合給coordinate node ,由協調節點進行數據的合并、排序、分頁等操作產出最終的結果

write

?a.Lucene 中,單個倒排索引?文件被稱為 Segment。Segment 是?自包含的,不不可變更更的。 多個 Segments 匯總在?一起,稱為 Lucene 的 Index,其對應的就是 ES 中的 Shard

?b.樂觀鎖,刪除用.del標記,然后過濾;

?c.寫index buffer(閃存)+ 寫Transaction Log (磁盤)

?d.Refresh : index buffer 1秒一次寫入 segment ,可以被搜索到;估進稱為進實時搜索?

?e. merage

MySql

write

mySql 分server層和存儲層,這里的存儲層默認指nnoDB; 先寫存儲層,在寫server層binlog

1. InnoDB將要更新的數據所在的整頁數據更到到緩存(Buffer pool 一半為機器內側60%)中

2. InnoDB寫入undo 日志便于回滾

3. InnoDB更新Buffer pool 內存中的數據,開放查詢

4. InnoDB寫redo log buffer

5. InnoDB commit 提交時?redo 日志寫入磁盤

6.? Server層寫binlog文件

7. commit 標識寫入redo 日志與binlog 保持一致

8. buffer pool 中的數據寫入磁盤

總結:

總結MySql, ElasticSearch,MongoDB三種現代數據的寫操作,不難發現,實現機制大同小異: 先寫buffer +?Transaction Log;? 同時滿足一定的條件時,再寫入到磁盤中;進而提升寫入效率;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214665.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214665.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214665.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++STL算法庫中謂詞的使用

什么是c的謂詞 謂詞概念: 謂詞函數是一個判斷式,一個返回bool值的函數或者仿函數,有幾個入參就是幾元謂詞。一般做一個函數的參數使用【引用自百度百科】。 常見的可以作為謂詞的東西:函數、函數指針、函數對象、lambda表達式&am…

2023 年浙江省職業院校技能大賽信息安全管理與評估賽項規程

*2023 年浙江省職業院校技能大賽“高職組”* *“信息安全管理與評估”賽項規程* *一、賽項名稱* 賽項名稱:信息安全管理與評估 英文名稱:Information Security Management and Evaluation 賽項組別:高職 賽項歸屬產業:電子信…

熱電廠發電機組常見故障及預測性維護方法

熱電廠的發電機組是關鍵的能源生產設備,在電力供應中扮演著關鍵角色。但經過長期運行和高負荷工作,一旦發生故障,可能導致停機、設備損壞甚至引發嚴重事故。因此,實施有效的預測性維護方法對于確保發電機組的穩定運行至關重要。本…

Linux(17):認識與分析登錄檔

什么是登錄檔 【詳細而確實的分析以及備份系統的登錄文件】是一個系統管理員應該要進行的任務之一。 登錄檔 就是記錄系統活動信息的幾個文件,例如:何時、何地(來源IP)、何人(什么服務名稱)、做了什么動作(訊息登錄啰)。 換句話說就是:記錄系…

【MySQL】:表的操作

表的操作 一.創建表二.查看表結構三.修改表四.刪除表 一.創建表 field 表示列名。 datatype 表示列的類型。 character set 字符集,如果沒有指定字符集,則以所在數據庫的字符集為準。 collate 校驗規則,如果沒有指定校驗規則,則以…

MySQL系列(二)——日志篇

MySQL日志 主要包括錯誤日志、查詢日志、慢查詢日志、事務日志、二進制日志幾大類。其中,比較重要的還要屬二進制日志binlog(歸檔日志)和事務日志redo log(重做日志)和undo log(回滾日志)。 今…

windows批處理腳本(.bat)如何激活Anconda Prompt虛擬環境

通過call 來調用激活腳本, activate myenv指的是要激活的環境,若省略,則激活的是base環境。 call : 從另一個批處理程序調用一個批處理程序,而不停止父批處理程序。 call C:\ProgramData\Anaconda3\Scripts\activate.bat activate…

fastdds共享內存實現原理

fastdds 共享內存分兩個部分,一部分用于保存數據,一部分用于通信。 fastrtps_“UUID”:共享內存包括又兩部分數據,BufferNode和segment_size, 用配置文件port_queue_capacity_指定BufferNode的數量,segment_size用于保存實際傳輸的…

imp導入數據發現的

遷移歷史數據到歷史庫,因為災備數據中心使用的DG,無法使用數據泵,只能通過exp導出,然后再通過imp導入 為防止undo表空間壓力過大,在導入時imp使用了commit參數及buffer參數 這次導入數據量達到1TB,剛到了1/…

智物發布MT6877平臺無線AR智能眼鏡參考設計,推動下一代無線AR發展

隨著增強現實(AR)技術的不斷發展,有線AR眼鏡在連接和使用方面存在一些限制。為了解決這些問題,無線AR智能眼鏡的推出勢在必行。 新一代無線AR智能眼鏡采用了天璣900(MT6877)平臺作為參考設計,搭載了2.4GHz的八核處理器…

【rabbitMQ】Exchanges交換機

上一篇:springboot整合rabbitMQ模擬簡單收發消息 https://blog.csdn.net/m0_67930426/article/details/134904766 本篇代碼基于上一篇繼續寫 目錄 Fanout 交換機 1. add queue 2. add Exchange 3.綁定隊列 Direct 交換機 1. add queue 2. add Exchange 3.…

011 數據結構_哈希

前言 本文將會向你介紹哈希概念,哈希方法,如何解決哈希沖突,以及閉散列與開散列的模擬實現 1. 哈希概念 順序結構以及平衡樹中,元素關鍵碼與其存儲位置之間沒有對應的關系,因此在查找一個元素時,必須要經…

CyclicBarrier、CountDownLatch、Semaphore 的用法

CyclicBarrier、CountDownLatch、Semaphore 的用法 CountDownLatch(線程計數器 ) CountDownLatch 類位于 java.util.concurrent 包下,利用它可以實現類似計數器的功能。比如有一個任務 A,它要等待其他 4 個任務執行完畢之后才能執…

數據結構與算法-Rust 版讀書筆記-2線性數據結構-隊列

數據結構與算法-Rust 版讀書筆記-2線性數據結構-隊列 1、隊列:先進先出 隊列是項的有序集合,其中,添加新項的一端稱為隊尾,移除項的另一端稱為隊首。一個元素在從隊尾進入隊列后,就會一直向隊首移動,直到…

鴻蒙原生應用再添新丁!同花順入局鴻蒙

鴻蒙原生應用再添新丁!同花順入局鴻蒙 來自 HarmonyOS 微博12月11日消息,同花順已完成#鴻蒙原生應用#beta版本,并正在進行全量版本開發,進一步豐富了#鴻蒙原生應用#的覆蓋領域。同花順作為股民和券商首選的一站式金融理財服務平臺…

擴展學習|商業智能和分析:從大數據到大影響

文獻來源:Chen H, Chiang R H L, Storey V C. Business intelligence and analytics: From big data to big impact[J]. MIS quarterly, 2012: 1165-1188. 下載鏈接:https://pan.baidu.com/s/1JoHcTbwdc1TPGnwXsL4kIA 提取碼:a8uy 在不同的組…

MySQL忘記密碼

根據提供的引用內容,當使用root用戶登錄MySQL時,如果密碼錯誤,會出現"Access denied for user ‘root’‘localhost’ (using password: NO)"的錯誤提示。這個錯誤提示表示使用了錯誤的密碼或者沒有輸入密碼就嘗試登錄MySQL。解決這…

SQL命令---查看數據庫表

介紹 使用sql命令查看數據表。 命令 show create table 表名\G;\G:使顯示結果整齊美觀。

Vue-第七天

智慧商城項目: 1.創建項目選項: 2.調整: 主要是增加兩個文件夾,刪除倒是沒什么 3.組件庫(vant-ui): 點擊進入官網:Vant 2 - Mobile UI Components built on Vue 4.導入: 全部導入…

MES系統需要具備哪些性能方面的需求?

MES系統需要具備哪些“性能需求”?關于這個問題,我覺得有必要先和大家解釋一下,到底什么是性能需求?性能需求在MES系統的作用是什么?講明白了這2點,問題自然而然就解決了。 什么是性能需求? 通…