概述

MongoDB(Humongous Database),中文意思就是巨大无比的数据库,顾名思义,MongoDB就是为处理大数据而生,以解决海量数据的存储和高效查询使用为使命。MongoDB是一款强大、灵活、易于扩展的通用型数据库它,能扩展出非常多的功能,如排序、范围查找、聚合、地理空间索引等,同时具有方便的集群管理模式及完善的运维辅助工具。

功能特性

  • 灵活的文档模型,加字段自由,同时不受数据类型限制;
  • 基于文档的数据库系统,格式以BSON(JSON,半结构化数据)存储;
  • 高可用复制集,自动故障转移;
  • 强大索引功能支持,允许多种快速查询,且提供唯一索引、复合索引、地理空间索引以及全文索引;
  • 高性能,mmapv1、wiredtiger、in-memory 等多引擎支持满足各种场景需求; (后续自研版本会支持rocksdb提升写入性能)
  • 高压缩比,占用磁盘空间小;
  • 地理空间支持,支持多点、线段、面、多边形、单点、多线段、multipolygon、几何体集合GeoJSON格式,支持符合空间索引、2D索引, 2dsphere 索引;
  • 完善的分布式扩缩容、数据迁移功能,扩缩容、数据迁移完美支持;
  • 主从复制支持异步复制和Raft复制,其中异步复制有可靠的rollback机制保证不丢数据,raft复制数据可靠性更高
  • 4.X版本已经支持事务功能,其中4.2版本开始支持分布式事务
  • 自研版本数据热备支持,实时数据备份、恢复

适用场景

  • 高并发读写;
  • 模式自由,随意字段添加,对于那种随时需要更改数据结构;
  • 数据量大,需要随时扩容的场景;
  • 磁盘空间小,最大化利用磁盘空间
  • 高可扩展性的应用场景;
  • 数据可靠性要求高的场景

不适用场景

  • 在多个不用维度对不用类型的数据进行关联(join),MongoDB不支持,建议使用mysql

MongoDB、ElasticSearch、Redis、HBase、Mysql选型比较

MongoDB特性及使用场景的更多相关文章

  1. Redis高级特性及应用场景

    Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...

  2. 二、RabbitMQ 进阶特性及使用场景 [.NET]

    前言 经过上一篇的介绍,相信大家对RabbitMQ 的各种概念有了一定的了解,及如何使用RabbitMQ.Client 去发送和消费消息. 特性及使用场景 1. TTL 过期时间 TTL可以用来指定q ...

  3. Mysql、MongoDB对比和使用场景

    MongoDB: 更高的写入负载 默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景.但是应当避免在高事务安全性的系统中使用Mong ...

  4. HBase篇(1)-特性与应用场景

    [每日五分钟搞定大数据]系列,HBase第一篇 结束了Zookeeper篇, 接下来我们来说下Google三驾马车之一BigTable的开源实现:HBase,要讲的内容暂定如下: 这是第一篇我们先不聊 ...

  5. redis特性,使用场景

    redis特性: 1.redis保存在内存中,读写速度快. 2.redis--持久化(断电数据不丢失:对数据的更新将异步保存到磁盘上). 3.redis数据结构丰富 4.redis功能丰富 5.简单( ...

  6. BFC的特性及使用场景

    BFC(Block Formatting Context)块级格式化上下文,是Web页面 CSS 视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域. BFC的特性: 1. 属于同一个 ...

  7. redis特性与使用场景

    一.8大特性 1.速度快 数据存储在内存,可达到10万OPS 2.可持久化,断电不丢数据 所有数据保存在内存中,对数据的更新异步的保存在硬盘中 3.多种数据结构 字符串.哈希.列表.集合.有序集 合位 ...

  8. Redis特性和应用场景

    Redis特性 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度非常快.官方提供的数据表明,在一个普通的Linux机器上,Redis读写速度分别达到81000/s和11000 ...

  9. MongoDB的优势应用场景和配置

    一:MongoDB的简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的 ...

随机推荐

  1. SCOI 2014 new :未来展望

    后期计划(可能延续到noip) 后期计划这种东西..唉...经历了三周的停课生涯,我似乎已经找到了一种状态,就是我一直期盼的状态,然后为了不落泪退役,具体是这样的: 由于现在的学习任务不太紧张了,所以 ...

  2. Python 让输入的密码不在屏幕上显示

    使用getpass模块 #!/usr/bin/env python import getpass username = raw_input("username:") passwor ...

  3. 双目立体匹配经典算法之Semi-Global Matching(SGM)概述:代价聚合(Cost Aggregation)

      由于代价计算步骤只考虑了局部的相关性,对噪声非常敏感,无法直接用来计算最优视差,所以SGM算法通过代价聚合步骤,使聚合后的代价值能够更准确的反应像素之间的相关性,如图1所示.聚合后的新的代价值保存 ...

  4. (转)Android 创建与解析XML—— Dom4j方式 .

    转:http://blog.csdn.net/ithomer/article/details/7521605 1.Dom4j概述 dom4j is an easy to use, open sourc ...

  5. Java习题10.25

    Java习题10.25 1. 实际上这道题考查的是两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类 ...

  6. 在桌面上显示IE图标(非快捷键)

    1.在桌面点击右键选择"属性"打开"显示属性",选择"桌面">"自定义桌面">"常规"& ...

  7. oracle一体机(exdata)创建ACFS文件系统

    ACFS是一个支持多个平台,可扩展的,基于ORACLE ASM的集群文件系统,可以用来存储数据库和各种应用的文件,包括数据库的trace文件,alert日志文件和配置文件等等,也可以用来存储视频,音频 ...

  8. linux mysql udf 提权

    连接远程数据库 查看插件库路径 show variables like '%plugin%'; 写入udf库到插件目录: 32位: select unhex('7F454C46020101000000 ...

  9. logback日志文件的使用

    1.引入Jar包,Maven pom.xml <!-- Logging with SLF4J & LogBack --> <dependency> <groupI ...

  10. spark 变量使用 broadcast、accumulator

    broadcast 官方文档描述: Broadcast a read-only variable to the cluster, returning a [[org.apache.spark.broa ...