mongodb 存引擎及配置

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: mongodb 存引擎及配置

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

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

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

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

欢迎点赞,关注,收藏

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

好了,本次就到这里

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

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

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
3月前
|
NoSQL 网络协议 Unix
第6期 MongoDB配置启动方式
第6期 MongoDB配置启动方式
290 0
|
5月前
|
NoSQL 数据可视化 MongoDB
Windows MongoDB的安装及配置图文说明(非常详细)
Windows MongoDB的安装及配置图文说明(非常详细)
321 0
|
5月前
|
NoSQL Linux MongoDB
MongoDB配置用户名和密码
MongoDB配置用户名和密码
472 0
|
1月前
|
存储 缓存 NoSQL
|
2月前
|
运维 NoSQL Linux
MongoDB详解(六)——MongoDB主从同步配置
MongoDB详解(六)——MongoDB主从同步配置
56 5
|
3月前
|
监控 NoSQL MongoDB
第5期 MongoDB配置用户名密码认证登录
第5期 MongoDB配置用户名密码认证登录
555 0
|
5月前
|
DataWorks NoSQL 网络安全
MongoDB的配置问题
MongoDB的配置问题
19 1
|
5月前
|
NoSQL MongoDB Docker
docker 配置mongoDB
docker 配置mongoDB
36 0
|
5月前
|
NoSQL Linux MongoDB
轻松掌握组件启动之MongoDB:快速入门、Linux安装和Docker配置指南
本文总结了MongoDB的快速入门、Linux安装和Docker配置指南。它提供了一步步的操作指引,帮助读者迅速上手MongoDB,并了解如何在Linux环境下进行安装、启动和配置。此外,文章还介绍了使用Docker安装和配置MongoDB的方法,使读者能够更轻松地部署和管理MongoDB实例。
|
6月前
|
NoSQL 关系型数据库 MongoDB
Django如何配置MongoDB
Django如何配置MongoDB