现在多种数据库的读写模型对比

目录

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.mzph.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点,问题自然而然就解决了。 什么是性能需求? 通…