• mongodb之存储引擎


    前言

    存储引擎是Mongodb管理数据存储主要的组件,Mongodb支持多种存储引擎,每种存储引擎适合特定的场景

    WiredTiger

    特性

    1. version >= 3.2版本默认存储引擎
    2. 支持文档级别的并发
    3. 使用MVCC(MultiVersion Concurrency Control)实现并发控制
    4. 可以通过快照恢复数据
    5. 优先写journal日志保证数据落地,单机模式建议开启journal日志
    6. 支持集合和索引数据压缩
    7. 使用存储引擎内部缓存和文件系统缓存

    适用场景

    适合大部分场景


    MMAPv1

    特性

    1. mongodb第一代引擎,基于文件内存映射(based on memory mapped files)
    2. 不支持big-endian架构的系统
    3. 通过频繁写journal日志数据来恢复数据
    4. 记录连续存储在硬盘
    5. 更新时,内容超过分配的空间,记录需要移动到新位置,索引重建和产生硬盘碎片,非常耗时,尽量避免这种情况的发生
    6. 记录空间分配策略: 2的N次方,适用记录可能会变化的场景; 原始大小,适用不会更新的场景,比如日志记录
    7. 使用所有系统可用缓存,由系统控制,可随时回收,内存越大性能越好

    适用场景

    高量读写和某些情况高量更新


    In-Memory

    特性

    1. version >= 3.2.6版本可用,仅企业版支持
    2. 所用数据存储在缓存中,性能比其它存储引擎要好
    3. 支持文档锁
    4. 需要分配足够的可用内存
    5. 不支持持久存储

    适用场景

    小数据量,临时存储,数据中转场景


    参考资料

    【1】mongodb存储
    https://docs.mongodb.com/manual/storage/

    【2】Storage Engines
    https://docs.mongodb.com/manual/core/storage-engines/

    【3】WiredTiger Storage Engine
    https://docs.mongodb.com/manual/core/wiredtiger/

    【4】MMAPv1 Storage Engine
    https://docs.mongodb.com/manual/core/mmapv1/

    【5】In-Memory Storage Engine
    https://docs.mongodb.com/manual/core/inmemory/

    【6】Journaling
    https://docs.mongodb.com/manual/core/journaling/

    【7】GridFS
    https://docs.mongodb.com/manual/core/gridfs/

    【8】FAQ: MongoDB Storage
    https://docs.mongodb.com/manual/faq/storage/

    作者:WadeYu
    出处:http://www.cnblogs.com/wadeyu/
    本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    [译]ABP vNext微服务演示,项目状态和路线图
    [译]初试C# 8.0
    [译]ABP vNext介绍
    ViewModel从未如此清爽
    python 函数基础及装饰器
    python 基础一
    scrapy基础二
    scrapy 基础
    python 基础技巧
    pandas 基础
  • 原文地址:https://www.cnblogs.com/wadeyu/p/7928679.html
Copyright © 2020-2023  润新知