前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongodb 内存引擎及配置

mongodb 内存引擎及配置

作者头像
阿兵云原生
发布2023-02-16 11:32:54
1K0
发布2023-02-16 11:32:54
举报
文章被收录于专栏:golang云原生new

上次我们分享到了 wiredTiger 引擎以及他对于以前默认的 MMAPV1 引擎的优势

关于 wiredTiger 引擎 配置这里补充一下:

代码语言:javascript
复制
storage:
journal:
enabled: true
dbPath: /data/xiaomotong/mongo1/
directoryPerDB: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
journalCompressor:none (默认snappy)
collectionConfig:
blockCompressor: zlib 
indexConfig:
prefixCompression: true
  • directoryPerDB

是否一个库一个文件夹

  • engine

数据引擎指定是什么

  • cacheSizeG

wiredTiger 引擎最大使用 cache 的大小,此处配置 1 个 G , 我们可以根据实际情况来配置

  • directoryForIndexes

是否将索引也按数据库名单独存储

  • collectionConfig

集合的压缩配置

  • blockCompressor

压缩方式 ,默认 snappy,这里选择 none 或者 zlib

  • indexConfig

索引配置

今天我来看看 mongodb 中的另外一个引擎,内存引擎

内存引擎

内存引擎,看名字就知道,数据肯定不是存在磁盘里面的,而是存在内存里面的

mongodb 的内存引擎是 InMemory 存储引擎,主要是用在企业版本的 mongodb,MongoDB Enterprise , 他不是将文档存储在磁盘上,而是将它们保留在内存中 ,

因此 InMemory 存储引擎 是没有持久化的 ,默认情况下,内存存储引擎使用50%的物理RAM减去1 GB

那么,就这个不会持久化的内存引擎,我们一般是在什么场景会使用他呢?

  • 存储非持久的数据

应用程序数据和系统数据,例如用户,权限,索引,副本集配置,分片群集配置等等

  • 用于高性能的读取

用于在副本集中的用来提供高性能查询的次要节点,可以从其他节点恢复数据,因此 内存引擎是不适用于副本集的主节点的,这里需要注意

因为内存引擎的数据很容易丢失

例如

上面有说到,内存引擎适合高性能的读取,没错,当客户端的请求是读操作的时候,尽可能的读取这个引擎所在的 mongodb,并且也不用担心这个引擎所在的 mongodb 会挂掉

因为挂掉之后,对整个集群没有什么影响,只需要挂掉的这个 mongodb 启动后找集群中的 其他 副本进行恢复数据即可

内存引擎关于配置上面没有什么特殊的,将上面 wiredTiger 引擎 的配置拿过来,将 engine 字段改成 inmemory 即可

GridFS

顺手在来看看 GridFS , 通过名字我们可以判别他是存储大文件的

我们一起来看看 GridFS 主要是能做什么,支持啥不支持啥。

GridFS 用作做大文件存储

我们在工作工程中,会使用 GridFS 存储大于16 MB的文件,GridFS 是用于存储和检索超过16 MB 的 BSON文档,如果一般数据量比较小的话,其实也用不到 GridFS

GridFS 不支持多文档事务

GridFS 文件存储不是只存储在单个文档中的

mongodb 中, GridFS 是不会将文件存储在单个文档中的,而是多个文档

例如将文件分为多个部分或大块(默认是 255 kB),并将每个大块存储为单独的文档

在 mongodb 中,GridFS 是使用这俩集合来存储文件块的,也就是存储文件的元数据

  • fs.chunks
  • fs.files

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是小魔童哪吒,欢迎点赞关注收藏,下次见~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿兵云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内存引擎
  • GridFS
  • 欢迎点赞,关注,收藏
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档