MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较

2023-11-15

前段时间做拦截件监控的时候把拦截件生命期存入mongodb,因生命期有各种变化,因此对此表的更新写操作非常多,老大给我看了一篇文章,才知道mongodb已经支持lsm存储方式了。

原文如连接:https://github.com/wiredtiger/wiredtiger/wiki/Btree-vs-LSM

文中对比了LSM和B-Tree的读写吞吐量,在单线程写操作下和多线程读操作下的差异。英文差的小伙伴别指望我这个半吊子来翻译了。

总结一点就是:在写操作上,LSM的吞吐量会是B-Tree的1.5~2倍   而在读操作上,随着读线程的增加,LSM性能下降很明显,B-Tree在读的性能上吞吐量是LSM的1.5~2倍。

因此在一个表需要频繁的进行写操作时,换成LSM的存储方式,将会是一个不错的选择。

目前正准备从B-Tree转向LSM,需要一段时间验证其效果。

另,目前只知道在创建collection的时候可以修改存储方式,脚本如下:

db.createCollection(
"TestTable",
{storageEngine: { wiredTiger: {configString: "type=lsm"}}}
)

 


https://www.cnblogs.com/sylvialucy/p/8883646.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较 的相关文章

  • MongoDB 查询返回空数组

    有一个基本的 Express 应用程序连接到几乎 0 5 GB 的 MongoDB 数据库 当我运行时 router get function req res next medical data find State CT function
  • 显示来自 mongodb 的所有数据并在 doT.js 模板引擎中渲染它

    我想从 mongodb 中提取数据并将其传递给视图 一切似乎都正常 但我没有看到所有 10000 条记录都显示出来 而是只看到了一条 我觉得我非常接近解决它 但我陷入困境 我正在使用node mongodb native express和d
  • 使用 dockerfile 在 docker 中安装 mongodb 驱动

    我有一个 mongodb docker 容器 我需要另一个安装了 php 和 apache 的 docker 容器 我想从这个容器运行一个 php 脚本并将一些数据发送到 mongodb 容器以将数据保存在 mongodb 数据库中 所以我
  • mocha——手表和猫鼬模型

    如果我让 mocha 监视更改 每次保存文件时 mongoose 都会抛出以下错误 OverwriteModelError 无法覆盖Client模型一旦编译 我知道猫鼬不允许两次定义模型 但我不知道如何让它与mocha watch clie
  • Inno Setup安装先决条件[重复]

    这个问题在这里已经有答案了 我正在通过 Inno Setup 创建一个安装程序 我看到很多关于如何检测先决条件是否存在的代码示例 但没有任何关于当我找不到先决条件时如何实际安装先决条件的代码示例 我确信它非常简单 但是我该如何安装先决条件呢
  • i18Next - NodeJS - 如何在不重新加载服务器的情况下更改翻译

    我正在使用 NodeJS 的 i18next 包来启用翻译 我将它作为标准 并为每个语言 国家对使用一个 json 文件 我想构建一个管理页面来编辑翻译 而无需深入研究代码 那么 如何 重新加载 管理员编辑过的 json 文件 而无需重新启
  • $lookup结果中的$match

    我有下一个蒙戈代码 db users aggregate match and UserName eq administrator Company CompanyName eq test lookup from companies local
  • CoreMongooseArray 到普通数组

    我正在从一个架构中选出 2 个元素 并希望在另一个架构中进行更新 为此 我使用切片方法将数组中的前 2 个元素列入候选名单 但我越来越 CoreMongooseArray 元素1 元素2 而不是 元素1 元素2 如何删除 CoreMongo
  • 当字段不为空时创建部分索引

    我正在尝试在字段上创建部分索引 但仅当该字段不为空时 换句话说 我希望能够让许多文档能够存储 null 但对于在字段中实际具有值的文档 我希望该值是唯一的 这是我尝试使用的代码 db account createIndex email 1
  • 在 MongoDb 上序列化仅获取属性

    使用 C 6 我可以写 public class Person public Guid Id get public string Name get public Person Guid id string name Id id Name n
  • 更新插入 MongoDB 时如何防止出现“_t”字段?

    我有一个应用程序 它使用 MongoDB 的 C 驱动程序将 Upsert 插入 MongoDB 数据库 当我打电话给Update函数 我无法指定我要更新的类型 然后 t字段插入元素的类型 这是我用来更新插入的代码 collection U
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • Mongo C# 驱动程序更新嵌套数组中的特定元素

    如何在 Mongo C 驱动程序 中修改嵌套属性 数组 中的单个元素而不检索整个文档 public class Element public int Value get set public string Name get set publ
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • Angular js 服务器端过滤器和分页

    我有几个输入字段 我们可以使用带有搜索名称的输入字段作为示例 当有人在该字段中输入内容时 我希望能够过滤对象的结果 但我想做过滤器服务器端而不是客户端 我有一个包含大量记录的数据库 因此我不想返回所有记录并在客户端进行过滤 这确实会减慢速度
  • 将日期差转换为年数以计算 MongoDB 中的年龄

    我正在使用以下方法来计算时间戳差异中的年龄 db getCollection person aggregate project item 1 DOB personal DOB dateDifference subtract new Date
  • 有没有一种方法可以将python对象直接存储在mongoDB中而不需要序列化它们

    我在某处读到过 您可以使用 BSON 将 python 对象 更具体地说是字典 作为二进制文件存储在 MongoDB 中 但是现在我找不到任何与此相关的文档 有人知道具体如何做到这一点吗 没有办法在不序列化的情况下将对象存储在文件 数据库
  • Node js mongodb 删除错误“key $lte 不得以 '$' 开头”

    db collection session remove timestamp lte a function err docs console log err console log docs Version mongodb is 2 6 5
  • 通过 elemMatch 在 MongoDB 中排序

    MongoDB 有没有一种基于排序的方法 elemMatch 例如 我有如下所示的文档 user ObjectId fsdfsdf array of things attribute 1 ObjectId sdfsdfsd attribut

随机推荐

  • myeclipse找不到Deployment Assembly ,报错

    今天tomcat加载maven项目遇到错误 java lang ClassNotFoundException org springframework web context ContextLoaderListener 在网上查到解决方法 出
  • 雷厉风行——开启人工智能教育普及时代

    自二十一世纪伊始 我国一线城市已全面进入老龄化严重的趋势 国家急需聪明睿智 精力充沛的年轻人作为人才储备 要全方位的培养年轻人 必须从少儿时期开始抓起 人工智能教育可以启发少儿天马行空的想象力 抽丝剥茧的思维方式 艰苦奋斗的实干精神 格物斯
  • 【hello git】初识Git

    目录 一 简述Git 二 Linux 下 Git 的安装 CentOS 2 1 基本命令 2 2 示例 三 Linux 下 Git 的安装 ubuntu 3 1 基本命令 3 2 示例 一 简述Git Git 版本控制器 记录每次的修改以及
  • matlab第三章课后答案,matlab程序设计第三章课后习题答案推荐.doc

    matlab程序设计第三章课后习题答案推荐 窗体顶端 1 p138 第6题 在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点 gt gt t 0 0 01 pi gt gt x1 t gt gt y1 2 x1 0 5 gt gt x2 s
  • 桥接路由器总是掉线_tplink路由器桥接掉线怎么办

    tplink是普联技术有限公司旗下的品牌 成立于1996年 是专门从事网络与通信终端设备研发 制造和行销的业内主流厂商 那么你知道tplink路由器桥接掉线的解决方法吗 下面是学习啦小编整理的一些关于tplink路由器桥接掉线的相关资料 供
  • 命令行参数格式介绍

    命令行参数 sys argv 命令行参数列表 getopt getopt argparse argparse例子 import argparse def cmd args argparse ArgumentParser descriptio
  • vue3弃用/deep/深度穿透

    使用css时 如果需要改变孙级样式需要用到 gt gt gt 穿透 scss中增加了 deep 功能来做样式穿透 vue项目中也可以写作 v deep vue3之后之前的穿透语法虽然暂时可以正常使用 但是在编译时会抛出异常 说明在不久的将来
  • SQL NOT EXISTS讲解 (详例助理解)

    首先我们要知道对于exists和not exists 的返回值都是真假 exists 如果子查询查询到了列那么就为假 not exists 如果子查询查询不到结果则返回值为真 下面来举例子来理解not exists 先给出三个表 stude
  • 如何在Linux中查看所有正在运行的进程

    你可以使用ps命令 它能显示当前运行中进程的相关信息 包括进程的PID Linux和UNIX都支持ps命令 显示所有运行中进程的相关信息 ps命令能提供一份当前进程的快照 如果你想状态可以自动刷新 可以使用top命令 ps命令 输入下面的p
  • el search 查询排序

    sort 与query是同级的 来源 https stackoverflow com questions 20974964 python custom scripting in elasticsearch sort score order
  • Android 加载gif图,Glide

    个人中心 DownLoad Android 可以使用 Glide Picasso Fresco 等第三方库来加载 gif 图 以 Glide 为例 可以按照以下步骤加载 gif 图 1 在 build gradle 文件中添加 Glide
  • verilog – 行为,RTL和门级之间的差异

    试图完全理解Verilog的抽象级别之间的差异 我得到了每个级别的描述 但我仍然无法在游戏中得到它 对于这种情况 我将粘贴一些Verilog代码以及我对它们的看法 gt 以下代码位于行为级别 always a or b or sel beg
  • 前端,后端,全栈哪个好找工作?

    职场老油子说说 现在啥岗位不好找工作 啥 想钱多 活少 离家近 最好单位发异性 这得靠实力 运气 如果是刚毕业 啥都不懂但又想从事技术行业 可以到职场上历练 而不是说报个培训机构 他们只能解决你的焦虑问题 而不是实际问题 如果只是混个工作
  • Vue3-自定义轮播图插件(逐步-1)

    1 大致框架建好 在src文件下新建一个文件XX 在XX中建立一个index vue作为主页面 在文件XX里建一个components文件用于存放组件 在components文件中建一个slideBox vue来写我们的轮播图主体 在sli
  • BGP总结

    BGP总结 BGP 边界网关协议 使用范围 BGP范围 在AS之间使用的协议 协议的特点 算法 路径矢量型 没有算法 协议是否传递网络掩码 传递网络掩码 支持VLSM CIDR 协议消息数据包封装 基于TCP封装 端口号 179 AS 自治
  • mybatis中代码复用问题resultMap、sql、include标签

    xml映射文件 对于重复出现的sql 片段可以使用sql标签提取出来 在使用的地方使用include标签引用即可 MyBatis之ResultMap标签 ResultMap标签基本作用 建立SQL查询结果字段与实体属性的映射关系信息 在深入
  • 华为OD机试 - 求符合要求的结对方式(Java )

    题目描述 用一个数组A代表程序员的工作能力 公司想通过结对编程的方式提高员工的能力 假设结对后的能力为两个员工的能力之和 求一共有多少种结对方式使结对后能力为N 输入描述 5 1 2 2 2 3 4 第一行为员工的总人数 取值范围 1 10
  • Mxnet在Windows10, vs2015平台的编译及开发-CPU版本

    环境 基础配置 Windows10 cmake3 11 1 vs2015 QT5 11 1 mxnet配置 OpenBLAS v0 2 9 Win64 int32 opencv3 4 1 相关资源百度云链接 https pan baidu
  • 机器学习——L1范数充当正则项,让模型获得稀疏解,解决过拟合问题

    问 使用L2范数正则项比L1范数正则项得到的是更为稀疏的解 答 错误 L1范数正则项得到的是更稀疏的解 因为在L1正则项中 惩罚项是每个参数绝对值之和 而在L2正则项中 惩罚项是每个参数平方的和 L1正则项可以压缩参数中的小值 更容易导致一
  • MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较

    前段时间做拦截件监控的时候把拦截件生命期存入mongodb 因生命期有各种变化 因此对此表的更新写操作非常多 老大给我看了一篇文章 才知道mongodb已经支持lsm存储方式了 原文如连接 https github com wiredtig