MongoDB介绍

目录

1.MongoDB介绍

2.业务场景

3.体系结构(MySQL和MongoDB对比)

4.MongoDB的特点


1.MongoDB介绍

MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。
它支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似丁JSON对象,即一个文档认为就是一个对象,字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

2.业务场景

传统的关系型数据库(如MysQL) ,在数据操作的"三高"需求以及应对Web2.0的网站需求面前的,显得力不从心。

"三高" 需求:
        High performance-对数据库高并发读写的需求。
        Huge Storage-对海量数据的高效率存储和访问的需求。
        High Scalability & High Availability-对数据库的高可扩展性和高可用性的需求。

具体场景:

        社交场景 使用MongoDB存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。
        游戏场景 使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率储和访问。
        物流场景 使用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以MongoDB内底数组的形式来存储,一次查询就能将订单所有的变更读取出来。
        物联网场景 使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
        视频直播 使用MongaDB存储用户信息、点赞互动信息等。

这些应用场景中,数据操作方面的共同特点是:
        (1)数据量大
        (2)写入操作频繁
        (3)价值较低的数据,对事务要求不高
对于这样的数据,我们更适合使用MongoDB来实现数据的存储。

在架构选型上,除了上述的三个特点外,还可以考虑以下的一些问题:

        (1)应用不需要事务及复杂join支持

        (2)新应用,需求会变,数据模型无法确定,想快速迭代开发

        (3)应用需要2000-3000以上的读写QPS (更高也可以)

        (4)应用需要TB甚至PB级别数据存储

        应用要求存储的数据不丢失

        (5)应用需要99.999%高可用

        (6)应用需要大量的地理位置查询、文本查询

如果上述有1个符合,可以考虑MongoDB

3.体系结构(MySQL和MongoDB对比)

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
colunmfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
嵌入文档MongoDB通过嵌入式文档来代替多表连接
primary keyprimary key主键,MongDB自动将_id设为主键

4.MongoDB的特点

MongoDB主要有如下特点:

  1. 高性能:
    MongoDB提供高性能的数据持久性。特别是对嵌入式数据模型的支持减少了数据库系统上的I/O活动索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的 需求、TTL素引解决历史数据自动过期的需求、地理位置案引可用于构建各种O2O应用)mmapv1,、wiredtiger、mongorocks (rocksdb) 、in-memory等多引擎支持满足各种场景需求。GridFS解决文件存储的需求。
  2. 高可用:
    MongoDB的复制工具称为副本集(Replica Set) ,它可提供自动故障转移和数据冗余。
  3. 高扩展性:
    MongoDB提供了水平可扩展性作为其核心功能的一部分分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展)从3.4开始, MongoDB支持基于片键创建数据区域,在一个平衡的集群中, MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片
  4. 丰富的查询支持
    MongaDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。
  5. 其他特点
    如无模式(动态模式) 、灵活的文档模型
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@insist123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值