• MongoDB概述


    MongoDB是一个高性能、高可用的、自动伸缩的开源的文档型数据库。MongoDB数据库把文档存在集合collection)中。集合中的文档它们不需要相同的schema,每个文档都可以有不同的schema。 这使得MongoDB比传统的RDBMS更灵活,因为你不用为预先定义schema而操心。

    如图所示:



    Document 数据库

      在MongoDB中一条记录就是一个document,是由 field 和值这样的键值对组成的数据结构。MongoDB的document类似于一个JSON对象,document中的 field 的值也可以包括其他的document ,数组和 document的数组。下图就是一个document的样例:

    使用 document 的优点:

    • 可以与许多编程语言中的本地数据类型相对应
    • 由于document支持嵌套,这样可以减少类似关系型数据库中的表连接操作,减少了性能开销
    • 动态的schema相对关系型数据的表的schema有更大的灵活度,比如方便的提供多态的特性

    关键特性

    高性能

    MongoDB提供高性能的数据持久化。特别是:

    • 支持嵌入的数据模型可以减少 I/O的操作
    • 通过索引支持更快的查询,并且索引对嵌入的document和数组也有作用

    丰富的查询语言

    MongoDB提供丰富的查询语言支持CRUD的读写操作,并且还支持:

    •  聚合管道,是一个基于数据处理管道概念的数据聚合的框架
    •  全文检索和地理化信息查询

    高可用

    MongoDB的复制机制又称 replica set (副本集),提供:

    •   自动故障转移
    •   数据冗余备份

    一个副本集是一组MongoDB服务器,它们维护相同的数据集,提供冗余和增加数据可用性。

    水平扩充

     MongoDB提供了水平的可伸缩性作为其核心功能的一部分:

    •  可以在一个集群的机器上进行数据切片
    •  从3.4开始,MongoDB支持基于分片键创建数据区(Zone)。在一个负载均衡的集群中,MongoDB读写操作可以只涉及到数据区内的那些分片数据。

    支持多个存储引擎

     MongoDB支持以下存储引擎:

    •   WiredTiger 存储引擎 (包括支持空闲时密 ,这是Mongo默认的存储引擎)
    •   In-Memory 存储引擎
    •   MMAPv1存储引擎 (4.0版本被弃用)

    此外,MongoDB还提供了可插入的存储引擎API,允许第三方为MongoDB开发存储引擎。

  • 相关阅读:
    windows下php扩展存在但无法加载的问题
    mysql5.7主从(Master/Slave)同步配置
    windows使用composer.phar
    git untrack file
    git常见问题
    thinkphp框架中Model对象$origin对象的作用
    thinkphp常见问题
    git合并多个commit
    ajax请求post和get的区别以及get post的选择
    .htaccess跳转https
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/9590254.html
Copyright © 2020-2023  润新知