散文读书想法

mongodb 存引擎及配置

2022-12-07  本文已影响0人  阿兵云原生
mongodb12.jpg

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

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

是否一个库一个文件夹

数据引擎指定是什么

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

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

集合的压缩配置

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

索引配置

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

内存引擎

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

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

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

image

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

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

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

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

例如

image

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

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

image

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

GridFS

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

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

GridFS 用作做大文件存储

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

GridFS 不支持多文档事务

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

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

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

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

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

欢迎点赞,关注,收藏

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

image

好了,本次就到这里

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

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

上一篇 下一篇

猜你喜欢

热点阅读