美文网首页
Mongodb存储引擎

Mongodb存储引擎

作者: 蕴重Liu | 来源:发表于2019-08-21 11:13 被阅读0次

插件式存储引擎API

image.png
image.png

插件式存储引擎API的引入为处理更多不同类型的业务提供了无限可能,内存存储引擎、事务存储引擎甚至Hadoop在未来都有可能接入进来。

MMAP存储引擎

缺陷:耗费磁盘空间和内存空间且难以清理,库级别锁,存储引擎消耗内存

WiredTiger存储引擎

  • 文档级别并发控制
    通过MVCC实现文档级别的并发控制,即文档级别锁;
    提升数据库读写性能的同时,大大提高了系统的并发处理能力;
  • 磁盘数据压缩
    支持对所有集合和索引进行Block压缩和前缀压缩(如果数据库启用了journal,journal文件一样会压缩),已支持的压缩选项包括:不压缩、Snappy压缩和Zlib压缩;
    默认:Snappy压缩;
    Snappy压缩速度快,压缩率OK,而Zlib压缩率高,CPU消耗多且速度稍慢;
    关于journal查看官网
  • 数据存储
    旧版本Mongo在数据库级别分配文件,数据库中的所有集合和索引都混合存储在数据库文件中,导致占用的磁盘空间也很难及时自动回收;
    在集合和索引级别分配文件,数据库中的所有集合和索引均存储在单独的文件中,集合或者索引删除后,对应的存储文件随即删除;
    由于存储方式不同,低版本的数据库无法直接升级到WiredTiger存储引擎,只能通过导出导入数据的方式来实现。

  • 可配置内存使用上限
    内存使用容量配置,storage.wiredTiger.engineConfig.cacheSizeGB和 [–wiredTigerCacheSizeGB参数,默认值为物理内存大小的一半;

MongoDB 3.0的一些主要特性和修改

使用createIndexes命令可以同时建立多个索引,并且只扫描一遍数据,提升了建索引的效率

MongoDB 4.0的一些主要特性和修改

  • 内部缓存
    同时使用WiredTiger内部缓存和文件系统缓存,从MongoDB 3.4开始,是两者中的较大者:50%(内存大小 – 1 GB)或 256 MB
  • 默认对索引前缀压缩,使用 db.collection.stats()方法并检查返回文档中的 indexSizes字段;

常见存储问题

相关文章

  • MongoDB之存储引擎

    从MongoDB 3.2 版本开始,WiredTiger成为MongDB默认存储引擎。 存储引擎要做的事情无外乎是...

  • MongoDB 3.0 更新日志(翻译)

    MongoDB 3.0 更新日志(翻译) 原文 主要变化 支持存储引擎选择API 增加WiredTiger存储引擎...

  • {MongoDB} 存储引擎

    从3.2版本开始,采用WiredTiger作为默认引擎,替换原有的MMAPv1引擎。 MMAPv1 基于内存映射文...

  • Mongodb存储引擎

    插件式存储引擎API 插件式存储引擎API的引入为处理更多不同类型的业务提供了无限可能,内存存储引擎、事务存储引擎...

  • MongoDB 存储引擎

    简单回顾 上次我们说到了关于 mongodb 的集群,分为主从集群和分片集群,对于分片集群中的分片这里需要注意如下...

  • MongoDB 引擎

    存储引擎 该存储引擎是负责管理数据的存储,无论是在内存和磁盘数据库的组成部分。MongoDB支持多个存储引擎,因为...

  • [译文]MongoDB WiredTiger引擎调优技巧

    MongoDB从3.0开始引入可插拔存储引擎的概念。当前,有不少存储引擎可供选择:MMAPV1、WiredTige...

  • mongodb存储引擎WiredTiger

    MongoDB2.3后默认采用WiredTiger存储引擎。 组成 WiredTiger由三部分组成: Mongo...

  • 存储引擎和索引

    存储引擎: Archive:用于数据存档归档;(mongodb可以代替)压缩率高;插入快,查询慢;Memory引擎...

  • MongoDB 默认存储引擎WiredTiger特性

    前言 与 MySQL 一样,MongoDB 也有不同类型的存储引擎,不同的存储引擎解决不同场景的问题。创建数据库或...

网友评论

      本文标题:Mongodb存储引擎

      本文链接:https://www.haomeiwen.com/subject/dttbsctx.html